我正在使用 Swift 3 开发 CoreData,现在快完成了。我创建了 CoreData 实体,现在我尝试从应用程序上的表单保存数据,但收到此错误:
import UIKit
import CoreData
class ItemDetailsVC: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {
@IBOutlet weak var storePicker: UIPickerView!
@IBOutlet weak var titleField: CustomTextField!
@IBOutlet weak var priceField: CustomTextField!
@IBOutlet weak var detailsField: CustomTextField!
var stores = [Store]()
override func viewDidLoad() {
super.viewDidLoad()
storePicker.delegate = self
storePicker.dataSource = self
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
let store = stores[row]
return store.name
}
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return stores.count
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
// update
}
func getStores() {
let fetchRequest: NSFetchRequest<Store> = Store.fetchRequest()
do {
self.stores = try context.fetch(fetchRequest)
self.storePicker.reloadAllComponents()
} catch {
// some code
}
}
@IBAction func savePressed(_ sender: UIButton) {
let item = Item(context: context)
if let title = titleField.text {
item.title = title
}
if let price = priceField.text {
item.price = (price as NSString).doubleValue
}
if let details = detailsField.text {
item.details = details
}
item.toStore = stores[storePicker.selectedRow(inComponent: 0)] error: cannot assign value of type 'Store' to value of type NSSet?
}
Run Code Online (Sandbox Code Playgroud)
我不是要求任何人解决该错误,我只是想知道该错误告诉我要做什么。错误出现在 item.toStore =stores[storePicker... 行上
小智 6
当您将 CoreData 模型上的关系设置为“To Many”时,它开始表现得像一个数组。就像这样,您需要将数据附加到该数组,而不是为其分配一个类。您可以通过以下方式执行此操作:
.addingObjects(from: [Any])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3925 次 |
| 最近记录: |