我想在核心数据存储中检查我要创建的类别名称是否已存在。
如果它存在,那么我应该显示一个警报视图而不是创建它。如果它不存在,那么我可以继续创建我的新类别。
func createCategory() {
let entity = NSEntityDescription.entityForName("Category", inManagedObjectContext: context!)
let categoryEntity = Category(entity: entity!, insertIntoManagedObjectContext: context)
let index = pickerView.selectedRowInComponent(0)
let color = categoryColor[index]
let fetchRequest = NSFetchRequest(entityName: "Category")
fetchRequest.fetchLimit = 1
let predicate = NSPredicate(format: "name = %@", name.text)
let fetchResults = context!.executeFetchRequest(fetchRequest, error: &error) as? [Category]
if let results = fetchResults {
var requiredCategory : Category
if (results.count > 0) {
requiredCategory = results[0] as Category
} else {
requiredCategory = Category(entity: categoryEntity, insertIntoManagedObjectContext: context!)
requiredCategory.name = name.text
// set the other properties for the Category as necessary
}
category?.name = requiredCategory
category!.descript = descriptionField.text
category!.color = color
println(category!.name)
context?.save(nil)
name.text = ""
descriptionField.text = ""
}
}
答案 0 :(得分:0)
您应该创建fetchRequest
并在创建categoryEntity
之前执行它。然后,检查results.count
。如果计数为> 0
,您已经有一个,您应该显示您的提醒。如果不是,则可以创建categoryEntity
,配置并保存。
请注意,您可能希望在谓词中使用=[cd]
,以避免使用同名但大写不同的多个类别。