【问题标题】:How to update values of core data objects with same attributes but different values?如何更新具有相同属性但值不同的核心数据对象的值?
【发布时间】:2015-04-17 18:47:08
【问题描述】:
<SaveDbstr: 0x8b640e0> (entity: SaveDbstr; id: 0x8b64140 <x-coredata:///SaveDbstr/tC0D35B09-8B89-4233-A572-8DA6434884802> ; data: {
cityName = LAFAYETTE;
distance = "11,382.7";
driverId = 00000000097;
strainDescription = "This is no creeper! Effects are felt almost immedi";
strainId = 00000000001;
strainImage = "www.dbster.net/DbsterDocuments/StrainImages/Kandy Skunk1.jpg";
strainName = "Kandy Skunk";
strainTypeName = "Hash and Oil";
vendorBusinessName = "Raging Vaping";
vendorDriverEngagementId = 18;
vendorOverallRating = "4.3";
})
2015-02-17 09:57:56.722 CoreDatProject[570:70b] save data to core data <SaveDbstr: 0x8b042f0> (entity: SaveDbstr; id: 0x8b028b0 <x-coredata:///SaveDbstr/tC0D35B09-8B89-4233-A572-8DA6434884803> ; data: {
cityName = MENIFEE;
distance = "11,382.7";
driverId = 00000000112;
strainDescription = "This is no creeper! Effects are felt almost immedi";
strainId = 00000000001;
strainImage = "www.dbster.net/DbsterDocuments/StrainImages/Kandy Skunk1.jpg";
strainName = "Kandy Skunk";
strainTypeName = "Hash and Oil";
vendorBusinessName = Vendor1;
vendorDriverEngagementId = 20;
vendorOverallRating = "4.1";
})

使用以下代码将上述对象成功保存在核心数据中

@property (nonatomic,strong) NSManagedObjectContext *savedbstr;

savedbstr = [self managedObjectContext];
for (int i=0;i<[temp count]; i++) {
    SaveDbstr *savedoobstr = [NSEntityDescription
                                 insertNewObjectForEntityForName:@"SaveDbstr"
                                 inManagedObjectContext:self. savedbstr];
    [savedoobstr setValuesForKeysWithDictionary:[temp objectAtIndex:i]];


}

NSError *error1;
if (![self. savedbstr save:&error1]) {
    NSLog(@"Coudld not save %@",[error1 localizedDescription]);
}

如何更新具有相同属性但值不同的核心数据对象的值? 例如,我想更新第一个对象的 cityName ??谢谢

【问题讨论】:

  • 你需要从 Core Data 获取实体到它的对象形式,然后修改 cityName 值,最后再次调用 managedObjectContext 上的 save: 方法来保存更改。
  • 您无需获取要更新的值,然后更改其值并提交,而是在此处插入不正确的新记录。请参阅以下堆栈问题:
  • 如何获取第一个对象,因为两个对象具有相同的实体名称,请澄清!!
  • 您需要在核心数据属性中使用一些唯一键,基于您可以识别要更新的对象,我也发布了我的答案,请参阅。

标签: ios core-data xcode5


【解决方案1】:

您需要获取要更新的值,然后更改其值并提交,而不是在这里插入不正确的新记录。 请参阅以下堆栈问题:

How to update existing object in Core Data?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-03
    • 1970-01-01
    相关资源
    最近更新 更多