2015-11-04 5 views
0

Имея проблемы с сохранением моих объектов управления в моем коде. По какой-то причине, когда я размещаю данные в первом контроллере, все работает хорошо. Например,быстрое сохранение нескольких объектов управления

Я размещаю новые категории, такие как «Фрукты», «Молочные продукты», «Мясо». Первый контроллер представления принимает данные. Когда я нажимаю на конкретный элемент, например «Молочный», и помещаю «Молоко» для предметов в этом разделе. Если я вернусь к предыдущему контроллеру представления и нажму «Мясо», я увижу те же данные, что и в «Молочном». Как правильно управлять объектами 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 

} 

}

+0

Перезаряжается ли ваш стол? – u54r

+0

Не могли бы вы разместить свой код, чтобы мы могли лучше понять, что происходит? – MQLN

+0

вот мой код –

ответ

0

У вас есть конкретный контроллер представления для каждой категории? Если это так, вам нужно добавить предикаты к вашим более конкретным контроллерам представлений.

Что-то вроде:

var request = NSFetchRequest(entityName: "Food") 
request.predicate = NSPredicate(format: "category == %@", "Meat") 

meats = try! context.executeFetchRequest(request) 

Это возвращает массив всех Food объектов, category atribute содержит строку "Meat".

0

Я сохранял свои данные в основных данных без должного объявления контекста управления и без присвоения текстовых меток основному объекту данных.

вопрос разрешен!

Смежные вопросы