我正在尝试将一个对象添加到一个数组但是它发送了zig bart错误 “无法识别的选择器发送到实例” 以下是我的代码
AppDelegate *appdelegate = (AppDelegate *)[[UIApplication sharedApplication]delegate];
NSDictionary *infomation = [self dictionaryWithContentsOfJSONString:@"Contacts.json"];
IstructContactsOrgByEntity *ObjIstructContactsOrgByEntity=[[IstructContactsOrgByEntity alloc]initWithIstructContactsOrgByEntity:infomation];
NSArray *array=[infomation objectForKey:@"contacts_list"];
for (int ndx = 0; ndx < [array count]; ndx++)
{
NSDictionary *stream = (NSDictionary *)[array objectAtIndex:ndx];
IstructContacts_List *ObjIstructContacts_List=[[IstructContacts_List alloc]initWithIstructContacts_List:stream];
NSArray *Qnarray=[stream objectForKey:@"contacts"];
for (int i=0; i<Qnarray.count; i++)
{
NSDictionary *Qnstream = (NSDictionary *)[Qnarray objectAtIndex:i];
IstructContacts *ObjIstructContacts=[[IstructContacts alloc]initWithIstructContacts:Qnstream];
[ObjIstructContacts_List.m_muteArrContacts addObject:ObjIstructContacts];
}
[ObjIstructContactsOrgByEntity.m_muteArrContacts_List addObject:ObjIstructContacts_List];
}
[appdelegate.m_ArrContactsOrgEntity addObject:ObjIstructContactsOrgByEntity];
最后一行[appdelegate.m_ArrContactsOrgEntity addObject:ObjIstructContactsOrgByEntity];
给我带来了问题。
答案 0 :(得分:5)
您的问题是编译器认为您已将“m_ArrContactsOrgEntity
”声明为NSMutableArray以外的其他内容。
否则,您将看不到“无法识别的选择器”错误。
对于您的另一个暗示,Objective-C中的最佳实践是变量应始终以小写字母开头。将“ObjIstructContacts
”,“Qnarray
”和“Qnstream
”更改为小写字母。
答案 1 :(得分:0)
**AppDelegate.h**
@property(nonatomic,retain) NSMutableArray *m_ArrContactsOrgEntity;
@synthesize m_ArrContactsOrgEntity;
**AppDelegate.m**
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.m_ArrContactsOrgEntity = [[[NSMutableArray alloc] init] autorelease];
}
然后使用AppDelegate Object添加对象。
感谢。
答案 2 :(得分:0)
m_ArrContactsOrgEntity must be NSmutableArray instead of NSArray.
NOW, You will add any items in m_ArrContactsOrgEntity array.