【发布时间】:2015-05-04 15:22:38
【问题描述】:
我想删除实体Person 中属性name 中与值Test 匹配的条目。
例如,我将一个条目保存到核心数据中,如下所示:object.setValue("Test", forKey: "markedCell")。现在我想知道条目"Test" 是否保存在属性markedCell 中以及它具有哪个indexPath。我尝试了以下一个:
var request:NSFetchRequest = NSFetchRequest(entityName: "Person")
request.predicate = NSPredicate(format:"markedCell = %@", "Test")
var results : [NSManagedObject] = context.executeFetchRequest(request, error: nil) as [NSManagedObject]
现在我知道条目 "Test" 是否存在但不知道它有哪个 indexPath(如果我知道它有哪个 indexPath 正确,我只能删除一个条目?)。目前我想删除条目"Test"(不想将其设置为"")。
我的 CoreData 模型:
我想从markedCell 中删除"Test"。
你们中有人知道如何在 Swift 中做到这一点吗?
创建一个单元格 (cellForRowAtIndexPath):
//Get task
let context = self.fetchedResultsController.managedObjectContext
let object = self.fetchedResultsController.objectAtIndexPath(indexPath) as NSManagedObject
var taskString:NSString?
taskString = object.valueForKey("name") as? String
cell.textLabel!.text = object.valueForKey("name") as? String
println(object.valueForKey("name") as? String)
//Set accessory type
var request:NSFetchRequest = NSFetchRequest(entityName: "Person")
request.predicate = NSPredicate(format:"markedCell = %@", taskString!)
var results : [NSManagedObject] = context.executeFetchRequest(request, error: nil) as [NSManagedObject]
if (results.count > 0) {
//Element exists
cell.accessoryType = UITableViewCellAccessoryType.None
println("Cell isn't marked")
}
else {
//Doesn't exist
cell.accessoryType = UITableViewCellAccessoryType.DisclosureIndicator
println("Cell is marked")
}
崩溃:
我希望这张照片有助于更好地理解我的问题。图片链接:https://www.dropbox.com/s/h5g4yeoedg0xjjv/Stackoverflow_Question.png?dl=0
【问题讨论】:
标签: ios swift core-data xcode6