2016-12-16 126 views
0

我想保存在INT核心數據和我掙扎。保存一個INT到核心數據

我有一個SQLite數組,大約有2000條記錄,所有數據都列在tableview上。當選擇其中一條記錄時,如果顯示該項目的詳細信息,則會轉到「speciesDetailViewController」。

當前顯示的所有內容都不可編輯。

我添加了用戶添加備註和選項來更改其中一個字段的功能。

由於我沒有使用SQLite的經驗(僱傭了某人),所以這些較小的更改保存在CoreData中。

我所有的工作,除了保存詮釋。

以下是其他詳情。

var specieId: Int = -1 
var speciesDetailData : SpeciesDetailData? 
lazy var coreDataStack = CoreDataStack() 

以下是使用的保存功能。

func saveResults() { 


    if let speciesDetailData = speciesDetailData { 

     let x = Int32(self.specieId) 

     speciesDetailData.commonName = ckCommonNameTextField.text! 
     speciesDetailData.commonForeignName = ckCommonForeignNameTextField.text!.isEmpty ? "" : ckCommonForeignNameTextField.text 
     speciesDetailData.speciesName = speciesLabel.text! 
     speciesDetailData.speciesID = x 
     speciesDetailData.speciesNote = ckNotesTextView.text!.isEmpty ? "" : ckNotesTextView.text 

    } else if speciesDetailData == nil { 

     if let savedData = NSEntityDescription.entity(forEntityName: "SpeciesDetailData", in: coreDataStack.managedObjectContext1) { 

      let x = Int32(self.specieId) 

      let speciesDetailData = SpeciesDetailData(entity: savedData, insertInto: coreDataStack.managedObjectContext1) 

      print (specieId) 

      speciesDetailData.commonName = ckCommonNameTextField.text!.isEmpty ? "" : ckCommonNameTextField.text 
      speciesDetailData.commonForeignName = ckCommonForeignNameTextField.text!.isEmpty ? "" : ckCommonForeignNameTextField.text 
      speciesDetailData.speciesName = speciesLabel.text! 
      speciesDetailData.speciesID = x 
      speciesDetailData.speciesNote = ckNotesTextView.text!.isEmpty ? "" : ckNotesTextView.text 

     } 
    } 

    coreDataStack.saveMainContext() 

實體是SpeciesDetailData,並且speciesID當前設置爲Int32。

我已經嘗試了上面,我也試圖

speciesDetailData.speciesID = Int32(self.specieId) 
speciesDetailData.speciesID = Int32(specieId) 

我已經嘗試了所有的設置爲Int64的,相同的結果。

我看過其他帖子,但所有建議都與我試過的一樣。

另外,我沒有收到錯誤。我只得到死亡的紅線。

我設置了一個斷點並按照它進行了操作,當它碰到int行時,它就會變成紅色,沒有任何細節。

更新: 我不知道什麼是「用戶標量類型」,但我沒有選中它,自動更正將其更改爲下面現在運行沒有錯誤,但零保存。我運行打印(specieId)並打印正確的整數。

speciesDetailData.speciesID = Int32(specieId) as NSNumber? 

有什麼建議嗎?

回答

0

顯然,使用標量類型是爲了幫助遷移到Swift 3.當我取消選中此框時,它似乎運行正常。我最終需要在該行的後端添加NSNumber,但它可以工作。