【发布时间】:2014-07-15 15:33:01
【问题描述】:
我在从 Core Data SQLite 文件中删除记录时遇到问题。当我从表格视图中删除一行时,我希望能够从我的文件中删除相应的记录。
这是我将所有记录提取到 allContacts 数组后所做的事情
NSManagedObject *contactRecord = [allContacts objectAtIndex:arc4random() % allContacts.count];
self.managedObjectID = [contactRecord objectID];
然后调用我的方法来准备我的联系人,然后将它们显示在 tableview 上。
当我从表中删除一行时,我调用这个方法
-(void)deleteContactFromFile:(contact *)deletedContact
{
NSLog(@"deleted Contact %@",deletedContact.personID);
AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
NSManagedObjectContext *context = appDelegate.managedObjectContext;
[context deleteObject:[context objectWithID:self.managedObjectID]];
[context save:nil];
}
有趣的是,我从核心数据文件中删除了一条随机记录,但不是我选择的记录。我不知道如何处理 ObjectID 删除特定 NSManagedObject 的事情。
如果我的问题不够清楚,请告诉我进一步澄清。
【问题讨论】:
-
“我从核心数据文件中删除了一条随机记录,但没有删除我选择的记录”。但是你随机选择一个!您的第一个代码 sn-p 使用
arc4random选择您稍后删除的代码。如果您是随机选择一个,那么随机删除一个不是您所期望的吗?
标签: ios objective-c uitableview core-data