需要有关 CoreData 保存的帮助

Posted

技术标签:

【中文标题】需要有关 CoreData 保存的帮助【英文标题】:Need Help On CoreData Saving 【发布时间】:2015-05-27 09:44:36 【问题描述】:

我正在尝试将值插入核心数据对象,但在保存这些值的同时收到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]);

        
    

【问题讨论】:

【参考方案1】:

当然是给你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);

【讨论】:

【参考方案2】:
if ([context save:&error])
 
    // This means your data is saved properly


【讨论】:

【参考方案3】:

怎么了?来自doc

(BOOL)保存:(NSError **)错误

返回值 如果保存成功则为 YES,否则为 NO。

所以当你进入循环时,保存成功,错误仍然为空。

【讨论】:

以上是关于需要有关 CoreData 保存的帮助的主要内容,如果未能解决你的问题,请参考以下文章

NSOutlineView 侧边栏帮助

数据导入CoreData期间如何显示progressBar?

Swift CoreData,通过多对多关系保存数据

快速需要帮助——CoreData 错误

核心数据不保存

iPhone上的预加载数据库?