我试图插入值到核心数据对象,但同时保存这些值我得到null
响应,但它正在更新到核心数据数据库,
AllAssets *allAssets1 = [NSEntityDescription insertNewObjectForEntityForName:@"AllAssets" inManagedObjectContext:context];
allAssets1.assetID = [NSNumber numberWithInt:assetID];
allAssets1.originalassetname = assetName;
[images addObject:[showrelatedAssets objectAtIndex:i]];
[products addObject:allAssets1];
[show_AddtoOffline addRel_Assets:products];
从下面的NSLog
语句得到null
,
if ([images count] !=0 ) {
if ([context save:&error])
{
NSLog(@"Can't Save! %@ %@", error, [error localizedDescription]);
}
}
当然是给你null
。您的数据保存无误,并且您正在记录error
和[error localizedDescription]
。
由于没有错误,这些将是null
。
NSManagedObjectContext
的save:
方法如果保存成功返回YES
,如果保存失败返回NO
。在后一种情况下,它还存储在您传递的&error
地址中遇到的错误。
你的if
语句应该是:
if ([context save:&error]) {
NSLog(@"Save successful");
} else {
NSLog(@"Could not save: %@ | %@", error, error.localizedDescription);
}
if ([context save:&error])
{
// This means your data is saved properly
}
怎么了?从doc
- (BOOL)保存:(NSError * *)误差
返回值如果保存成功,则为"是",否则为"否"。
所以当你进入循环时,保存是成功的,error仍然是null