, истекающий приложение из-за неперехваченного исключением «NSInvalidArgumentException», причина: «Неприемлемая тип значения для атрибута : свойство =„XXXXX“; желаемый тип = NSNumber; данный тип = NSTaggedPointerString; значение = 0. 'я не могу вставить значение с типом данных NSNumber в мой CoreData
Пробовал: [введите описание изображения здесь] [1]
[message setValue:localID forKey:@"local_id"];
localID имеет тип NSNumber
DataModel изображение: [1]: https://i.stack.imgur.com/7WTlU.png
[self insertInLocatDB:print_data entityName:@"Message_data" withPredicate:@"receiver_id" filterWith:@"unique_id"];
С помощью этого для ввода в CoreData:
-(void)insertInLocatDB :(NSMutableArray *)arr_msg entityName:(NSString*)name withPredicate:(NSString*)predicateText filterWith:(NSString*)filterText
{
NSEntityDescription *entitydesc=[NSEntityDescription entityForName:name inManagedObjectContext:app.context];
NSFetchRequest *request=[[NSFetchRequest alloc]init];
[request setEntity:entitydesc];
NSInteger local_id =[self getMaxLocalId:name];
for(int i=0; i<[arr_msg count]; i++)
{
[fetched_data removeAllObjects];
NSPredicate *predicate =[NSPredicate predicateWithFormat:@"%@ like %@ ",predicateText,[[arr_msg objectAtIndex:i]objectForKey:predicateText]];
[request setPredicate:predicate];
NSError *error;
NSArray *matchingData=[app.context executeFetchRequest:request error:&error];
local_id=local_id+1;
for (NSManagedObject *obj in matchingData)
{
[fetched_data addObject:[obj valueForKey:filterText]];
}
NSString *filter=[[arr_msg objectAtIndex:i] objectForKey:filterText];
if(![fetched_data containsObject:filter])
{
NSManagedObject *message=[[NSManagedObject alloc] initWithEntity:entitydesc insertIntoManagedObjectContext:app.context];
[arr_keys setArray:[[arr_msg objectAtIndex:i] allKeys]];
[arr_values setArray:[[arr_msg objectAtIndex:i] allValues]];
[message setValue:[NSNumber numberWithInteger:local_id] forKey:@"local_id"];
for (int i=0;i<[arr_keys count];i++)
{
if([[message.entity propertiesByName] objectForKey:[arr_keys objectAtIndex:i]] != nil
&& ([[[message.entity propertiesByName] objectForKey:[arr_keys objectAtIndex:i]] isKindOfClass:[NSAttributeDescription class]]))
{
[message setValue:[arr_values objectAtIndex:i] forKey:[arr_keys objectAtIndex:i]];
}
}
[arr_keys removeAllObjects];
[arr_values removeAllObjects];
}
}
}
Не могли бы вы объявить e предоставить более подробную информацию? – DeyaEldeen
Атрибут local_id имеет тип данных NSNumber в основных данных. Я пытаюсь создать local_id и вставить его в CoreData – Sandhya
NSInteger local_id = local_id + 1; NSNumber * localID = @ (local_id); – Sandhya