2016-02-16 47 views
0

我是使用Swift進行編碼的新手,我試圖在覈心數據文件中寫入兩個文本字段。我已經通過在線搜索找出了大部分我需要的代碼,但是我得到了一個我無法弄清楚的錯誤。我已經發布了下面的整個保存功能代碼,但是我在以managedObjectContext開頭的行上得到了一個「不能在可選值類型爲'NSManagedObjectContext'的非可選值上使用可選鏈接」的錯誤。使用Swift寫入核心數據時出現錯誤代碼的問題

@IBAction func saveData(sender: AnyObject) { 
    let entityDescription = NSEntityDescription.entityForName("MatchData", inManagedObjectContext: managedObjectContext) 

    let matchData = MatchData(entity: entityDescription!, insertIntoManagedObjectContext: managedObjectContext) 

    matchData.teamNumber = teamNumber.text 
    matchData.matchNumber = matchNumber.text 

    var error: NSError? 

    managedObjectContext?.save(error) 

    if let err = error { 
     status.text = err.localizedFailureReason 
    } else { 
     teamNumber.text = "" 
     matchNumber.text = "" 
    } 
} 

我在Xcode最新版本的工作,我認爲這個問題有東西在斯威夫特的變化,但我不能算出它,因爲我是新手。任何幫助調試將不勝感激。

回答

1

do, try, catch聲明在哪裏?如果要將對象保存到managedObjectContext,則必須使用如下語句:do { try manaagedObjectContext.save() } catch { // handle error }

請試試看!希望它可以幫助

`@IBAction FUNC SAVEDATA(發件人:AnyObject){

讓entityDescription:MatchData = NSEntityDescription.insertNewObjectForEntityForName( 「MatchData」,inManagedObjectContext:managedObjectContext)爲! MatchData

entityDescription.teamNumber = self.teamNumber.text 
entityDescription.matchNumber = self.matchNumber.text 

do { try managedObjectContext.save() } catch { /*Handle error*/ } 

打印(entityDescription) }`

+0

感謝您對如何構建代碼的建議。我嘗試過使用do,嘗試並捕獲,但無法弄清楚如何實現它。 –

+0

我編輯了我的答案!請試試看。 –

+0

謝謝。這真的有幫助。 –