я выборки данных из основных данных с следующей code-Как добавить объект типа NSDictionary в NSMutableArray, который содержит объекты NSDictionaryResultType?
NSManagedObjectContext *context=[[self appDelegate] managedObjectContext];
NSEntityDescription *entityDesc=[NSEntityDescription entityForName:@"Messages" inManagedObjectContext:context];
NSFetchRequest *request=[[NSFetchRequest alloc] init];
[request setEntity:entityDesc];
[request setResultType:NSDictionaryResultType];
NSArray *objects=[context executeFetchRequest:request error:&error];
функции, содержащей код выше возвращает мне NSArray из NSDictionaryType. На контроллере представления я сохранил их в сообщениях NSMutableArray * в функции viewdidload. Теперь, если новые сообщения получены или отправлены, я хочу сохранить этот новый NSDictionary для сообщений. Это порождает ошибки:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayI addObject:]: unrecognized selector sent to instance 0x9740230'
код, чтобы получить DATA-
CoreDataHandler *handler=[[CoreDataHandler alloc] init];
NSMutableArray *messages=[[NSMutableArray alloc]initWithObjects: nil];
messages=(NSMutableArray *)[handler fetchMessages:[chatWithUser objectForKey:@"jidStr"]];
код, где я добавляю объект messages-
NSMutableDictionary *m = [[NSMutableDictionary alloc] init];
[m setObject:messageStr forKey:@"msg"];
[m setObject:@"you" forKey:@"sender"];
[m setObject:[NSString getCurrentTime] forKey:@"createdAt"];
[messages addObject:(NSDictionary *) m];
Похоже, вы пытаетесь вызвать «addObject:» в NSArray вместо вашего NSMutableArray, разместите соответствующий код, в который вы добавляете объекты в свой массив. – Daniele
Вы не можете добавить объект в не изменяемый массив. –
И если вы инициализируете указатель в одной строке и затем устанавливаете указатель на другое значение в самой следующей строке, эта первая строка была бесполезной. –