BSa*_*nts 3 arrays object objective-c
我是Objective-C中的新编码,我正在试图弄清楚如何执行以下操作:
我有一节课Company:
@interface Company : NSObject
@property (strong, nonatomic)NSString *companyID;
@property (strong, nonatomic)NSString *companyName;
@end
Run Code Online (Sandbox Code Playgroud)
我从服务器获取字典,只是解析对象.之后,我将这些对象添加到一个数组中(它正在工作 - 这里没问题 - 我得到了JSON).
NSMutableDictionary *companyDictionary = [[NSMutableDictionary alloc]initWithDictionary:response];
NSArray *companyArray = [companyDictionary valueForKey:@"data"];
NSMutableArray *companyInformationArray = [NSMutableArray new];
//Parser
for (int i = 0; i < [companyArray count]; i++) {
Company *company = [Company new];
company.companyID = [[companyArray objectAtIndex:i] valueForKey:@"company_id"];
company.companyName = [[companyArray objectAtIndex:i] valueForKey:@"name"];
[companyInformationArray addObject:company];
}
Run Code Online (Sandbox Code Playgroud)
问题是:我需要访问里面的对象及其字段
companyInformationArray
Run Code Online (Sandbox Code Playgroud)
我只是想尝试做类似的事情(这两个接近当然不会起作用):
Company *company = [Company new];
company = [[companyInformationArray objectAtIndex:0] valueForKey:@"name"];
Run Code Online (Sandbox Code Playgroud)
要么:
Company *company = [Company new];
company.companyName = [[companyInformationArray objectAtIndex:0] companyName];
Run Code Online (Sandbox Code Playgroud)
请你帮助我好吗?
谢谢!
Objective-C现在支持轻量级泛型.例如,NSMutableArray您可以指定您的数组是一个Company对象数组,而不是简单的:
NSMutableArray <Company *> *companyInformationArray;
Run Code Online (Sandbox Code Playgroud)
然后你可以这样做:
NSString *nameOfSecondCompany = companyInformationArray[1].companyName;
Run Code Online (Sandbox Code Playgroud)
这样做的好处是编译器会警告你,如果你试图添加一些不是a的东西,Company同样你喜欢强大的属性输入而不需要任何强制转换.
| 归档时间: |
|
| 查看次数: |
68 次 |
| 最近记录: |