2015-09-30 31 views
0

我想檢查我即將創建的類別名稱是否已存在或未存在於核心數據存儲中。檢查覈心數據屬性是否在添加新數據屬性之前包含值

如果它存在,那麼我應該顯示一個警報視圖,而不是創建它。如果它不存在,那麼我可以繼續創建我的新類別。

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

你實際上並不是在問一個問題。你有什麼問題? – Wain

+0

上述函數創建一個新類別並將其保存在我的核心數據中。我的實體類別具有名稱,說明和顏色。我的問題是,我想知道當我點擊保存按鈕時,核心數據中是否存在即將創建的新類別。如果是這樣,那麼它將不會被創建並顯示一條警告消息,如果它不存在,那麼我可以創建一個新的類別。謝謝 –

回答

0

您應該創建fetchRequest並在創建categoryEntity之前執行它。然後,檢查results.count。如果計數是> 0您已經有一個,您應該顯示您的警報。如果不是那麼您可以創建categoryEntity,配置並保存它。

請注意,您可能希望在謂詞中使用=[cd]以避免具有相同名稱但大小寫不同的多個類別。