コアデータをIntに保存しようとしていて、苦労しています。Intをコアデータに保存する
私は約2000レコードのSQLiteを持つ配列を持っており、すべてがtableviewにリストされています。レコードの1つが選択されると、そのアイテムの詳細が表示された「speciesDetailViewController」に移動します。
現在表示されているものはすべて編集できません。
私はメモを追加する機能と、フィールドの1つを変更するオプションを追加しています。
私はSQLite(雇用された人)の経験がないので、マイナーな変更はCoreDataに保存されます。
私はIntを保存する以外はすべて作業しています。
以下はその他の詳細です。
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に設定されています。
私はまた、私はInt64型に、同じ結果をすべて設定することを試みた
speciesDetailData.speciesID = Int32(self.specieId)
speciesDetailData.speciesID = Int32(specieId)
を試みた、上記を試してみました。
私は他の投稿を見ましたが、すべての提案は私が試したものと同じです。
また、エラーは発生していません。私は死の赤い線を得るだけです。
私はブレークポイントを設定してそれに従います。そして、それがintラインに当たったとき、それは細部なしで赤い線になっています。
更新: "User Scalar Type"が何であるか分かりませんが、私はチェックを外して、以下に変更したオートコレクトはエラーなしで実行されますが、nilは保存されます。私はプリント(specieId)を実行し、正しい整数を出力します。
speciesDetailData.speciesID = Int32(specieId) as NSNumber?