2017-02-14 8 views
0

私は非常に簡単な迅速なコースに従っていますが、インストラクタにとってはすべての作業が同じですが、同じコードは私の側では実行されません。Swift 3(Core Data)でエンティティ属性を参照する

アプリ名と、それらが重要であるかどうかを決定するスイッチとテーブルビューにタスクを追加することで構成されている、非常に簡単である(絵文字が名前に追加された場合)

アクセスしようとしているとき私の "Taskentity"コアデータエンティティの "name"属性を変更すると、エディタにエラー "タイプの値" Taskentityに "メンバ"の名前がない "というエラーが表示されます。

コードは以下の通りです:任意の助け Core Data file

ありがとう:

import UIKit 

class AddTaskViewController: UIViewController { 

@IBOutlet weak var textField: UITextField! 

@IBOutlet weak var isImp: UISwitch! 

override func viewDidLoad() { 
    super.viewDidLoad() 

    // Do any additional setup after loading the view. 
} 

@IBAction func btnTapped(_ sender: Any) { 

    let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext 

    let task = Taskentity(context: context) 
    task.name = textField.text! // **!error!** 

    task.isImportant = isImp.isOn 

    (UIApplication.shared.delegate as! AppDelegate).saveContext() 

    navigationController!.popViewController(animated: true) 
} 

}

そして、私のコアデータファイルには、次のようになります!

答えて

0

あなたのスクリーンショットは問題を完全に示しています。 nameではなく、corenameという名前の属性を付けました。だからもちろん、名前はnameではありません!

0

属性に問題があります。文字列である 'corename'というタイトルの名前を 'name'に変更する必要があります.Xcodeでは、Deviが何も取得していないため、.nameが何を意味するのかわかりません。

私はあなたのコードは、この問題を解決するためにどのように見えるべきか添付している:

import UIKit 

class AddTaskViewController: UIViewController { 

@IBOutlet weak var textField: UITextField! 

@IBOutlet weak var isImp: UISwitch! 

override func viewDidLoad() { 
    super.viewDidLoad() 

// Do any additional setup after loading the view. 
} 

@IBAction func btnTapped(_ sender: Any) { 

let context = (UIApplication.shared.delegate as!  AppDelegate).persistentContainer.viewContext 

let task = Taskentity(context: context) 
task.corename = textField.text! // **!error!** 

task.isImportant = isImp.isOn 

(UIApplication.shared.delegate as! AppDelegate).saveContext() 

navigationController!.popViewController(animated: true) 
} 
} 
関連する問題