QQ好友中的信息较多。假设我们单独从plist 中直接取出数据 是能够解决这个问题

可是相当复杂。以为列表中分组 。每组中还有不同信息

大致模型是 数组套数组  数组套字典

所以我们要封装数据模型

  1. //
  2. // GPGroupController.h
  3. // 02-好友分组
  4. //
  5.  
  6. #import <UIKit/UIKit.h>
  7.  
  8. @interface GPGroupController : UIViewController
  9.  
  10. @end
  1. //
  2. // GPGroupController.m
  3. // 02-好友分组
  4. //
  5.  
  6. #import "GPGroupController.h"
  7. #import "GPGroup.h"
  8. #import "NSArray+LocalPrint.h"
  9. @interface GPGroupController ()
  10.  
  11. @property(nonatomic,strong)NSArray *groups;
  12.  
  13. @end
  14.  
  15. @implementation GPGroupController
  16.  
  17. -(NSArray *)groups
  18. {
  19. if (_groups == nil) {
  20. //1.
  21. NSString *path = [[NSBundle mainBundle]pathForResource:@"qq_group.plist" ofType:nil];
  22. NSArray * dicts =[NSArray arrayWithContentsOfFile:path];
  23.  
  24. //2.
  25. NSMutableArray *objs = [NSMutableArray array];
  26. for(NSDictionary *dic in dicts)
  27. {
  28. GPGroup *group = [GPGroup groupWthDict:dic];
  29. [objs addObject:group];
  30. }
  31. //3.
  32. _groups = objs;
  33. }
  34. return _groups;
  35. }
  36.  
  37. - (void)viewDidLoad {
  38. [super viewDidLoad];
  39. NSLog(@"%@",self.groups);
  40. // Do any additional setup after loading the view.
  41. }
  42.  
  43. - (void)didReceiveMemoryWarning {
  44. [super didReceiveMemoryWarning];
  45. // Dispose of any resources that can be recreated.
  46. }
  47.  
  48. /*
  49. #pragma mark - Navigation
  50.  
  51. // In a storyboard-based application, you will often want to do a little preparation before navigation
  52. - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
  53. // Get the new view controller using [segue destinationViewController].
  54. // Pass the selected object to the new view controller.
  55. }
  56. */
  57.  
  58. @end
  1. //
  2. // GPFriend.h
  3. // 02-好友分组
  4.  
  5. #import <Foundation/Foundation.h>
  6.  
  7. @interface GPFriend : NSObject
  8. @property(nonatomic,copy)NSString *icon;
  9. @property(nonatomic,copy)NSString *message;
  10. @property(nonatomic,copy)NSString *name;
  11.  
  12. +(id)friendWithDict:(NSDictionary *)dict;
  13. -(id)initWithDict:(NSDictionary *)dict;
  14. @end
  1. //
  2. // GPFriend.m
  3. // 02-好友分组
  4. //
  5.  
  6. #import "GPFriend.h"
  7.  
  8. @implementation GPFriend
  9. +(id)friendWithDict:(NSDictionary *)dict
  10. {
  11. return [[self alloc]initWithDict:dict];
  12. }
  13. -(id)initWithDict:(NSDictionary *)dict
  14. {
  15. if (self = [super init]) {
  16. [self setValuesForKeysWithDictionary:dict];
  17. }
  18. return self;
  19. }
  20.  
  21. - (NSString *)description
  22. {
  23. return [NSString stringWithFormat:@"icon=%@,name=%@,message=%@", _icon,_name,_message];
  24. }
  25. @end

QQ好友列表数据模型封装的更多相关文章

  1. iOS开发UI篇—使用UItableview完成一个简单的QQ好友列表(一)

    iOS开发UI篇—使用UItableview完成一个简单的QQ好友列表(一) 一.项目结构和plist文件 二.实现代码 1.说明: 主控制器直接继承UITableViewController // ...

  2. ExpandableListView仿QQ好友列表

    本例中,对ExpandableListView中的数据进行了封装,分为两个JavaBean,一个为Group类表示组信息,一个Child类表示该组下子列表信息: Group: public class ...

  3. (二十七)QQ好友列表的实现

    QQ好友列表通过plist读取,plist的结构为一组字典,每个字典内有本组的信息和另外一组字典代表好友. 要读取plist,选择合适的数据结构,例如NSArray,然后调用initWithConte ...

  4. 基于Qt的相似QQ好友列表抽屉效果的实现

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/shuideyidi/article/details/30619167     前段时间在忙毕业设计, ...

  5. Windows UIA自动化测试框架学习--获取qq好友列表

    前段时间应公司要求开发一款针对现有WPF程序的自动化测试工具,在网上查资料找了一段时间,发现用来做自动化测试的框架还是比较多的,比如python的两个模块pywinauto和uiautomation, ...

  6. [iOS基础控件 - 6.9.3] QQ好友列表Demo TableView

    A.需求 1.使用plist数据,展示类似QQ好友列表的分组.组内成员显示缩进功能 2.组名使用Header,展示箭头图标.组名.组内人数和上线人数 3.点击组名,伸展.缩回好友组   code so ...

  7. 仿QQ好友列表界面的实现

    TableView有2种style:UITableViewStylePlain 和 UITableViewStyleGrouped. 但是QQ好友列表的tableView给人的感觉似乎是2个style ...

  8. android 实现QQ好友列表

    在某些Android开发群里,看到有些新手问怎么实现QQ好友列表,其实网上一搜挺多的.接触Android,也才一年的时间,大部分时间花在工作上(解bug...),界面上开发很少参与.自己维护的系统应用 ...

  9. swift 实现QQ好友列表功能

    最近项目中有类似QQ好友列表功能,整理了一下,话不多说,直接上代码 import UIKit class QQFriend: NSObject { var name: String? var intr ...

随机推荐

  1. 2013 ACM/ICPC Asia Regional Changsha Online - J

    原题戳这里. 题意: 有一未知列数a1,a2,a3.....an, 已知s[i]=a[i-1]+a[i]+a[i]  (1<i<n) s[1]=a[1]+a[2]; s[n]=a[n-1] ...

  2. 关于EasyUI datagrid editor combogrid搜索框的实现

    首先需要datagrid editor对combogrid的扩展,这个是别人实现的: $.extend($.fn.datagrid.defaults.editors, { combogrid: { i ...

  3. SQLServer2008 字符串函数一览表

    /* 字符串函数 (PS.索引都从1开始计算)*/ /* 指定字符(或字符串)A.字符串B.起始索引.获得A在B中的索引值.*/select Charindex('d','abcdefg',0) -- ...

  4. Ubuntu16下安装lamp

    1.安装php7 sudo apt-get install php7.0 php7.0-mcrypt 2.安装MySQL sudo apt-get install mysql-server 输入 su ...

  5. 【Linux】VMware安装VMware Tools工具

    VMware Tools是VMware虚拟机中自带的一种增强工具,相当于VirtualBox中的增强功能(Sun VirtualBox Guest Additions),是VMware提供的增强虚拟显 ...

  6. SQLite 在 Android 的应用

    Android提供了创建和使用SQLite数据库的API(Application Programming Interface,应用程序编程接口). 在Android系统中,主要由类SQLiteData ...

  7. session 存入redis 或 memcache 的方法

      Session简介 session,中文经常翻译为会话,其本来的含义是 指有始有终的一系列动作/消息,比如打电话时从拿起电话拨号到挂断电话这中间的一系列过程可以称之为一个session.有时候我们 ...

  8. 如何修改yii2.0用户登录使用的user表为其它的表

      这只是自己练习的一个记录而已. 因为某种原因,不想用yii自带的user表,想用自己建的admin数据库表,修改如下: 1. 参考高级模板里里的common\models\User 修改 Admi ...

  9. (转)C#开发微信门户及应用(2)--微信消息的处理和应答

    http://www.cnblogs.com/wuhuacong/p/3614175.html 微信应用如火如荼,很多公司都希望搭上信息快车,这个是一个商机,也是一个技术的方向,因此,有空研究下.学习 ...

  10. 团体程序设计天梯赛-练习集-L1-040. 最佳情侣身高差

    L1-040. 最佳情侣身高差 专家通过多组情侣研究数据发现,最佳的情侣身高差遵循着一个公式:(女方的身高)×1.09=(男方的身高).如果符合,你俩的身高差不管是牵手.拥抱.接吻,都是最和谐的差度. ...