• QQ好友列表数据模型封装


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

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

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

    所以我们要封装数据模型

    //
    //  GPGroupController.h
    //  02-好友分组
    //
    
    
    #import <UIKit/UIKit.h>
    
    @interface GPGroupController : UIViewController
    
    @end
    

    //
    //  GPGroupController.m
    //  02-好友分组
    //
    
    
    #import "GPGroupController.h"
    #import "GPGroup.h"
    #import "NSArray+LocalPrint.h"
    @interface GPGroupController ()
    
    @property(nonatomic,strong)NSArray *groups;
    
    @end
    
    @implementation GPGroupController
    
    -(NSArray *)groups
    {
        if (_groups == nil) {
            //1.
            NSString *path = [[NSBundle mainBundle]pathForResource:@"qq_group.plist" ofType:nil];
            NSArray * dicts =[NSArray arrayWithContentsOfFile:path];
            
            //2.
            NSMutableArray *objs = [NSMutableArray array];
            for(NSDictionary *dic in dicts)
            {
                GPGroup *group = [GPGroup groupWthDict:dic];
                [objs addObject:group];
            }
            //3.
            _groups = objs;
        }
        return _groups;
    }
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        NSLog(@"%@",self.groups);
        // Do any additional setup after loading the view.
    }
    
    - (void)didReceiveMemoryWarning {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }
    
    /*
    #pragma mark - Navigation
    
    // In a storyboard-based application, you will often want to do a little preparation before navigation
    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
        // Get the new view controller using [segue destinationViewController].
        // Pass the selected object to the new view controller.
    }
    */
    
    @end
    

    //
    //  GPFriend.h
    //  02-好友分组
    
    #import <Foundation/Foundation.h>
    
    @interface GPFriend : NSObject
    @property(nonatomic,copy)NSString *icon;
    @property(nonatomic,copy)NSString *message;
    @property(nonatomic,copy)NSString *name;
    
    +(id)friendWithDict:(NSDictionary *)dict;
    -(id)initWithDict:(NSDictionary *)dict;
    @end
    

    //
    //  GPFriend.m
    //  02-好友分组
    //
    
    #import "GPFriend.h"
    
    @implementation GPFriend
    +(id)friendWithDict:(NSDictionary *)dict
    {
        return [[self alloc]initWithDict:dict];
    }
    -(id)initWithDict:(NSDictionary *)dict
    {
        if (self = [super init]) {
            [self setValuesForKeysWithDictionary:dict];
        }
        return self;
    }
    
    - (NSString *)description
    {
        return [NSString stringWithFormat:@"icon=%@,name=%@,message=%@", _icon,_name,_message];
    }
    @end
    


  • 相关阅读:
    Sql2000存储过程分页
    扇贝网页记单词插件
    notepad++正则替换保留原内容
    给 QuickTime 播放器添加快进x秒,快退x秒
    谷歌浏览器隐私设置错误 NET::ERR_CERT_AUTHORITY_INVALID 攻击者可能会试图从 xx 窃取您的信息(例如:密码、通讯内容或信用卡信息)。
    Java实体映射工具MapStruct 与BeanUtils性能比较
    阿里DDD项目最佳实践-COLA 架构总览
    Java实体映射工具MapStruct详解
    Martin Fowler大神
    领域模型的核心本质是什么?
  • 原文地址:https://www.cnblogs.com/clnchanpin/p/6918751.html
Copyright © 2020-2023  润新知