コンパイラのエラーが表示されています。その理由は分かりません。私はこれには簡単な答えがあると確信しています。保存する前に割り当てようとしているコアデータ属性があります。私のコア内のデータプロパティは、それがこのように定義のファイル:私はそれを選択し、inputViewにそれを置くためにUIPickerを使用していますSwift 3キャストUITexFieldをIntに変換
@NSManaged public var age: Int32
。それはうまくいくので、ageTextField: UITextField!
は値を保持します。私は
person.age = ageTextField.text -> Cannot assign String? to Int32.
[OK]を次のようちょうど私が取得、保存する前にCoreDataオブジェクトにこれを割り当てようとして、私がいることを理解し、私は
person.age = Int(ageTextField.text) -> Value of Optional String not unwrapped...
[OK]を、それを投げ、私はそれを取得するので、私はアンラップそれは、それが再びアンラップするように求められますし、私は同意する:
person.age = Int(ageTextField.text!)! -> Type of expression is ambiguous without more context
私はここで間違っているかわからないんだけど、ちょうど私の古いスウィフト2のコードの上に見て、これは働いていました。これはSwift 3の私の最初のコードです。
Xcode 8では、 '@NSManaged public var age:Int32'のようなものを取り除く必要があります。コアデータエンティティは自動的にクラスになり、その属性は自動的にプロパティになります。 – matt
実際の問題は、単にIntがInt32でないことです。 – matt
こんにちは@matt、ありがとうございます。私はNSManagedObjectサブクラスの作成を使用しました。それが私のソロで迅速に学ぶことができる唯一の方法です。何が良い方法だろう。 – Jonnny