以國旗選擇為例
flag
flagview
viewcontroller(uipickerview)
解釋:flag中:
{
- (instancetype)initWithDic:(NSDictionary *)dic
{ 字典轉(zhuǎn)模型的方法實(shí)現(xiàn),初始化
if (self = [super init]) {
[self setValuesForKeysWithDictionary:dic];
}
return self;
}
(instancetype)flagWithDic:(NSDictionary *)dic
{
return [[self alloc] initWithDic:dic];
}`-
(NSArray *)flagList
{
//加載plist<# model #>
NSString *path = [[NSBundle mainBundle] pathForResource:@"flags" ofType:@"plist"];
NSArray *dicArray = [NSArray arrayWithContentsOfFile:path];//字典轉(zhuǎn)模型(循環(huán)將數(shù)據(jù)模型保存文模型數(shù)組)
NSMutableArray *tmpArray = [NSMutableArray array];
for (NSDictionary *dic in dicArray) {
Flag *flag = [Flag flagWithDic:dic];
[tmpArray addObject:flag];
}
return tmpArray;
}
flagview:
@property(nonatomic,strong)Flag *flag;
//實(shí)現(xiàn)flag的set方法:如果接收數(shù)據(jù)较店,可對view進(jìn)行相關(guān)初始化操作
-(void)setFlag:(Flag *)flag{_flag = flag;
self.nameLabel.text = flag.name;
self.imageView.image = [UIImage imageNamed:flag.icon];
}
viewcontroller:
@property (nonatomic,strong) NSArray *flags;
//懶加載膳汪,得到模型數(shù)組,實(shí)現(xiàn)flags的get方法
-(NSArray *)flags{
if (!_flags) {
_flags = [Flag flagList];
}
return _flags;
}
//調(diào)用flagview.flag的set方法操软,傳入數(shù)據(jù)。
Flag *flag = self.flags[row];
flagView.flag = flag;