在代码中保存管理对象时出现问题。出于某种原因,当我将数据放在第一个视图控制器中时,一切都运行得很好。例如
我把“水果”、“乳制品”、“肉类”等新的类别放在一起。第一个视图控制器获取数据。当我点击特定的项目,如“乳制品”,并在该部分的项目中输入“牛奶”。如果我返回到上一个视图控制器并单击"Meats",我看到的数据与我在“乳制品”下输入的数据相同。如何正确管理我的NSManage对象。
下面是我的代码。
导入UIKit导入CoreData
类HomeSpecificItemViewController: UIViewController {
var selectedItem : [Items] = []
@IBOutlet weak var itemNameTextField: UITextField!
@IBOutlet weak var brandNameTextField: UITextField!
@IBOutlet weak var caloriesTextField: UILabel!
@IBOutlet weak var priceTextField: UILabel!
@IBOutlet weak var amountTextField: UITextField!
@IBOutlet weak var threshHoldNumberField: UITextField!
@IBOutlet weak var stepper: UIStepper!
override func viewDidLoad() {
super.viewDidLoad()
stepper.wraps = true
stepper.autorepeat = true
stepper.maximumValue = 10
// Do any additional setup after loading the view.
}
@IBAction func saveButton(sender: AnyObject) {
let context = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext
let itemDescription = NSEntityDescription.insertNewObjectForEntityForName("Items", inManagedObjectContext: context) as! Items
itemDescription.setValue(itemNameTextField.text, forKey: "Items")
itemDescription.setValue(brandNameTextField.text, forKey: "Items")
do {
try context.save()
}catch _ {
}
/*
let request = NSFetchRequest(entityName: "Items")
let results : [AnyObject]?
do {
results = try context.executeFetchRequest(request)
}catch _ {
results = nil
}
if results != nil {
self.itemDescription = results as! [Items]
}*/
}
@IBAction func cancelPressed(sender: AnyObject) {
self.dismissViewControllerAnimated(true, completion: nil)
}
@IBAction func increaseNumberStepper(sender: UIStepper) {
threshHoldNumberField.text = Int(sender.value).description
}}
发布于 2015-11-05 07:56:26
您是否为每个类别设置了特定的视图控制器?如果是这样,您需要做的就是将谓词添加到更具体的视图控制器中。
类似于:
var request = NSFetchRequest(entityName: "Food")
request.predicate = NSPredicate(format: "category == %@", "Meat")
meats = try! context.executeFetchRequest(request)这将返回一个包含所有Food对象的数组,这些对象的category属性包含字符串"Meat"。
发布于 2016-04-13 23:31:30
我将数据保存到核心数据时,没有正确声明管理上下文,也没有将文本标签分配给核心数据对象。
问题解决了!
https://stackoverflow.com/questions/33533493
复制相似问题