私はSwiftとxCodeの初心者ですので、私の専門用語が間違っていると謝ります。'String?'型の値を割り当てることができません。 「Double」というエラーを入力する
私はCoreDataの学習を始め、ユーザーが「場所」を作成できる基本的な機能を作り出そうとしています。
属性name(type = string)、latitude(type = double)、およびlongitude(type = double)でデータモデルを設定しました。
名前、緯度、経度を入力できるように設定された別のコントローラとのセグを使用して、TableViewController(これは正常に動作しています)をセットアップしました。
私が知る限り、緯度と経度のアウトレットに接続したテキストフィールドを読み取る2行のコードを除いて、すべてが正しく設定されています。このコードはAddLocationControllerに含まれています。
助けていただけたら幸いです!
@IBOutlet var nameTextField:UITextField!
@IBOutlet var latitudeTextField:UITextField!
@IBOutlet var longitudeTextField:UITextField!
@IBAction func save(sender: AnyObject) {
if let appDelegate = (UIApplication.shared.delegate as? AppDelegate) {
location = LocationMO(context: appDelegate.persistentContainer.viewContext)
location.name = nameTextField.text
// This is where the error occurs
location.latitude = latitudeTextField.text
location.longitude = longitudeTextField.text
print("saving data to context ...")
appDelegate.saveContext()
}
dismiss(animated: true, completion: nil)
}
}
これは、テキストをdoubleに変換できない場合にクラッシュする原因となります。 この場合、let文を使用する方がよいでしょう。 –
ありがとう!これはトリックでした。 – joshlorschy
いつもよろしくお願いします。@ joshlorschy –