需要CoreData保存帮助



我试图插入值到核心数据对象,但同时保存这些值我得到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

NSManagedObjectContextsave:方法如果保存成功返回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

最新更新