字典數組轉為模型數組


在控制器上懶加載

- (NSArray *)statuses
{
    if (_statuses == nil) {
        // 加載plist中的字典數組
        NSString *path = [[NSBundle mainBundle] pathForResource:@"statuses.plist" ofType:nil];
        NSArray *dictArray = [NSArray arrayWithContentsOfFile:path];
        
        // 字典數組 -> 模型數組
        NSMutableArray *statusArray = [NSMutableArray array];
        for (NSDictionary *dict in dictArray) {
            XSPStatus *status = [XSPStatus statusWithDict:dict];
            [statusArray addObject:status];
        }
        
        _statuses = statusArray;
    }
    return _statuses;
}

 

XSPStatus.h文件里

#import <Foundation/Foundation.h>

@interface XSPStatus : NSObject
@property (strong, nonatomic) NSString *name;
@property (strong, nonatomic) NSString *text;
@property (strong, nonatomic) NSString *icon;
@property (strong, nonatomic) NSString *picture;
@property (assign, nonatomic, getter=isVip) BOOL vip;

+ (instancetype)statusWithDict:(NSDictionary *)dict;
@end

 

XSPStatus.m文件里

#import "XSPStatus.h"

@implementation XSPStatus
+ (instancetype)statusWithDict:(NSDictionary *)dict
{
    XSPStatus *status = [[self alloc] init];
    [status setValuesForKeysWithDictionary:dict];
    return status;
}
@end

 

取出數據,結果如下:

XSPStatus *a = self.statuses[indexPath.row];
NSLog(@"%@--%@--%@--%@",a.buyCount,a.price,a.title,a.icon);

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM