• 本文转发至:http://www.cnblogs.com/tmf-4838/p/5294036.html
  • 实例化一个类:从plist文件抽取出类

@interface Person : NSObject

// 实例化对象(抽取出类)
@property (nonatomic, strong)NSString *name;
@property (nonatomic, strong)NSString *tel;
@property (nonatomic, strong)NSString *pic; // 遍历初始化(参数是字典)
- (Person *)initWithDictionary:(NSDictionary *)dic;
+ (Person *)personWithDictionary:(NSDictionary *)dic;
@end
  • 使用字典作为自定义构造器的参数

#import "Person.h"

@implementation Person

// 自定义构造器
- (Person *)initWithDictionary:(NSDictionary *)dic
{
if (self = [super init])
{
_name = dic[@"name"];
_tel = dic[@"tel"];
_pic = dic[@"pic"];
}
return self; } // 类工厂方法
+ (Person *)personWithDictionary:(NSDictionary *)dic
{
return [[self alloc] initWithDictionary:dic]; } @end
  • 存储对象的不仅仅可以是该类的指针
  • 把plist文件实例化最大的好处:数据处理创建对应对象,取值操作数据变得很easy
  • 实例化对象后,不需要考虑plist文件格式,只需要找对应实例取值就OK
  • 注意:
  • 因为所有的数据都被实例化到一个集合,如果分区的话,每个区取值都是从0开始\

  • 因此这里使用实例化对象是得不到分区以及分区索引的:使用属性都在一个集合

  • 字典有时候更适合,不要思维定式为集合首选(面向对象的思想)

  •  // 初始化动态集合
    self.arrPerson = [NSMutableArray array];
    // 实例化该plist抽取出类的对象:通过字典赋值
    for (NSString *key in self.arrSection)
    {
    // 遍历字典所有value得到的是集合 for (NSDictionary *dic in self.dicData[key])
    {
    // 遍历该集合得到的每个人对象的信息(字典)\
    集合存储对象(对象的存储不仅仅局限于该类的指针)
    [self.arrPerson addObject:[Person personWithDictionary:dic]];
    }
    }
    // 测试数据存在
    NSLog(@"存储的任意对象key为name = %@", [self.arrPerson[12] name]);

最新文章

  1. 【转】python编码的问题
  2. jQuery.cookie.js插件了解及使用方法
  3. html表格相关
  4. css margin
  5. DevExpress.XtraGrid.Views 设置指定行的背景颜色 .
  6. 异常:NSException和NSAssert的简单使用
  7. WEB urllib2 module note
  8. Camel routes in Spring config file
  9. && 用法解释
  10. python从socket做个websocket的聊天室server
  11. ab测试
  12. qt二维码示例
  13. 编程实现任意长度整数的加法(整数可以长度超出C++中int范围)
  14. apache动态编译与静态编译
  15. 关于现在IT行业从业者一些建议
  16. if else if,switch case二者的联系与区别
  17. 小程序之带参数跳转到tab页
  18. pipenv使用总结
  19. 一般删除网页数据和jquery下使用Ajax删除数据的区别
  20. (精品)微信支付android端

热门文章

  1. CREATE SCHEMA
  2. wpf应用程序 打印标签
  3. 【递归与分治】 poj 1017
  4. scull_p_read()函数分析
  5. HDOJ--ACMSteps--2.1.8--Leftmost Digit-(取对数,数学)
  6. HDU2216:Game III(BFS)
  7. HDU2952:Counting Sheep(DFS)
  8. 在vim下,实现nesC语句的高亮
  9. CodeForces 689C Mike and Chocolate Thieves (二分最大化最小值)
  10. C++中运行外部程序