我是 Objective-C 的新编码,我正在尝试弄清楚如何执行以下操作:
我有一个类 Company
:
@interface Company : NSObject
@property (strong, nonatomic)NSString *companyID;
@property (strong, nonatomic)NSString *companyName;
@end
我正在从服务器获取字典并解析对象。 之后,我将这些对象添加到一个数组中(它正在工作 - 这里没问题 - 我得到了 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];
}
问题是:我需要访问对象及其内部的字段
companyInformationArray
我只是想做一些类似的事情(这两种方法当然行不通):
Company *company = [Company new];
company = [[companyInformationArray objectAtIndex:0] valueForKey:@"name"];
或者:
Company *company = [Company new];
company.companyName = [[companyInformationArray objectAtIndex:0] companyName];
你能帮帮我吗?
谢谢!
最佳答案
Objective-C 现在支持轻量级泛型。例如,您可以指定您的数组是 Company
对象的数组,而不是简单的 NSMutableArray
:
NSMutableArray <Company *> *companyInformationArray;
然后你可以这样做:
NSString *nameOfSecondCompany = companyInformationArray[1].companyName;
这样做的优点是,如果您尝试添加不是 Company
的内容,编译器会警告您,同样您喜欢无需任何强制转换的强类型属性。
关于objective-c - 在 Objective-C 的对象数组中访问对象及其属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44728477/