概述保存在覈心數據
我需要幾個的TextField保存到CoreData的整數,但是隻有第一個(見於如下pickerView)保存和正確地打印。其他人不能正確保存,例如,當我嘗試保存整數時,我得到一個錯誤,說他們不能接受一個字符串,這是有道理的。我只是找不到解決整數字符串問題的方法。另一個錯誤發生在我試圖將所有東西都轉換爲字符串時(主要是因爲我不需要對它進行任何算術運算,所以它沒有關係),它只是給了我一個saveButton函數的突破點。
我想知道
我最終需要的是所有這些TextField的保存到CoreData,這樣我可以取回這些數據的能力是什麼。我很感激提前的幫助。謝謝!
注意
我在內的整個(或大部分)的ViewController.swift文件,以便你可以看到我是如何聲明的東西,然後它們是如何被調用。有問題的代碼位於代碼塊底部的saveButton動作中。
CODE
@IBOutlet weak var locationOfMachine: UITextField!
@IBOutlet weak var engineHours: UITextField!
@IBOutlet weak var YOM: UITextField!
@IBOutlet weak var serialNo: UITextField!
@IBOutlet weak var modelName: UITextField!
@IBOutlet weak var pickerTextField: UITextField!
var pickOption = ["Wirtgen","Kleeman","Hamm","Vögele"]
override func viewDidLoad() {
super.viewDidLoad()
var pickerView = UIPickerView()
pickerView.delegate = self
pickerTextField.inputView = pickerView
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
return 1
}
@IBAction func saveButton(sender: AnyObject)
{
var appDel: AppDelegate = (UIApplication.sharedApplication().delegate as! AppDelegate)
var context:NSManagedObjectContext = appDel.managedObjectContext
var entity1 = NSEntityDescription.insertNewObjectForEntityForName("UsedInfo", inManagedObjectContext:context) as NSManagedObject
entity1.setValue(pickerTextField.text, forKey: "product")
entity1.setValue(modelName.text, forKey:"modelName")
entity1.setValue(serialNo.text, forKey:"serialNo")
entity1.setValue(Int(YOM.text!), forKey:"yom")
entity1.setValue(engineHours.text, forKey:"engineHours")
entity1.setValue(locationOfMachine.text, forKey:"location")
print(entity1.valueForKey("product"))
print(entity1.valueForKey("modelName"))
print(entity1.valueForKey("serialNo"))
print(entity1.valueForKey("yom"))
print(entity1.valueForKey("engineHours"))
do {
try context.save()
}
catch {
print("error")
}
}
編輯
在嘗試一切保存爲只是一個字符串,因爲我只需要找回它,我碰到這個問題:
entity1.setValue(pickerTextField.text, forKey: "product")
entity1.setValue(modelName.text, forKey:"modelName")
entity1.setValue(serialNo.text, forKey:"serialNo") <-Thread1:Breakpoint1.1
entity1.setValue(YOM.text, forKey:"yom")
entity1.setValue(engineHours.text, forKey:"engineHours")
entity1.setValue(locationOfMachine.text, forKey:"location")
print(entity1.valueForKey("product"))
print(entity1.valueForKey("modelName"))
print(entity1.valueForKey("serialNo"))
print(entity1.valueForKey("yom"))
print(entity1.valueForKey("engineHours"))
我也在調試器窗口中獲得「(lldb)」。
謝謝!同樣,這裏有很大的noob,但是對象子類究竟是什麼? – gavsta707
當您使用核心數據模型時,Xcode的編輯器菜單有一個「Create NSManagedObject Subclass ...」選項。它可以讓你創建符合你的設計的特定類,而不是總是處理泛型的'NSManagedObject'類型。 –
謝謝!我會研究這個 – gavsta707