首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >快速保存多个管理对象

快速保存多个管理对象
EN

Stack Overflow用户
提问于 2015-11-05 06:43:14
回答 2查看 115关注 0票数 0

在代码中保存管理对象时出现问题。出于某种原因,当我将数据放在第一个视图控制器中时,一切都运行得很好。例如

我把“水果”、“乳制品”、“肉类”等新的类别放在一起。第一个视图控制器获取数据。当我点击特定的项目,如“乳制品”,并在该部分的项目中输入“牛奶”。如果我返回到上一个视图控制器并单击"Meats",我看到的数据与我在“乳制品”下输入的数据相同。如何正确管理我的NSManage对象。

下面是我的代码。

导入UIKit导入CoreData

类HomeSpecificItemViewController: UIViewController {

代码语言:javascript
复制
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]
    }

*/

代码语言:javascript
复制
}




@IBAction func cancelPressed(sender: AnyObject) {

    self.dismissViewControllerAnimated(true, completion: nil)
}






@IBAction func increaseNumberStepper(sender: UIStepper) {


    threshHoldNumberField.text = Int(sender.value).description

}

}

EN

回答 2

Stack Overflow用户

发布于 2015-11-05 07:56:26

您是否为每个类别设置了特定的视图控制器?如果是这样,您需要做的就是将谓词添加到更具体的视图控制器中。

类似于:

代码语言:javascript
复制
var request = NSFetchRequest(entityName: "Food")
request.predicate = NSPredicate(format: "category == %@", "Meat")

meats = try! context.executeFetchRequest(request)

这将返回一个包含所有Food对象的数组,这些对象的category属性包含字符串"Meat"

票数 0
EN

Stack Overflow用户

发布于 2016-04-13 23:31:30

我将数据保存到核心数据时,没有正确声明管理上下文,也没有将文本标签分配给核心数据对象。

问题解决了!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33533493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档