2015-06-20 3 views
0

Я новичок в разработке iOS, и я пытаюсь развернуть свою голову, используя несколько управляемых объектов.Сохранение управляемого объекта с одним типом

Например, тестовое приложение имеет два объекта для папки, а другое для Планировщика. Это тип To One, поэтому для каждой папки есть планировщик. Планировщик имеет атрибут, называемый заметками для сохранения текста из текстового поля.

После создания папки, нажимая на ячейку в таблицеПросмотр пользовательского перехода к контроллеру представления планировщика, проходящему по объекту selectedFolder. Внутри контроллера Planner View Controller Я пытаюсь убедиться, что при выполнении функции savePlanner это должно сохранить текст 'UITextView' для свойства 'notes' управляемого объекта планировщика, который имеет прямую связь с 'selectedFolder'.

Я не уверен, что я уверен, что существует связь между Планировщиком и выбранной папкой при сохранении.

В контроллере View Viewer у меня есть;

class PlannerViewController: UIViewController { 

//SelectedFolder is the managed object of the cell row 
var selectedFolder: Folder! 
var planner: Planner? 

@IBOutlet weak var plannerTextField: UITextView! 


override func viewDidLoad() { 
    super.viewDidLoad() 

//Load Planner Data in text field here.. 


} 


@IBAction func savePlanner(sender: AnyObject) { 

    //Save Planner Notes To Folder 

    //Get the context 
    let moc = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext 
    //get entity details 
    let entity = NSEntityDescription.entityForName("Planner", inManagedObjectContext: moc!) 
    //Create the managed object to be inserted 
    let note = Planner(entity: entity!, insertIntoManagedObjectContext: moc!) 

    //Add current Planner to selectedFolder 
    selectedFolder.planner = note 

    //Error 
    var error: NSError? 
    if moc!.save(nil){} 

    //Storing Data 
    note.notes = plannerTextField.text 

    moc?.save(&error) 

} 

} 
+0

Возможно, ваша терминология запутана, но у вас должен быть только один управляемый объект * context * - У вас есть несколько управляемых объектов. Предполагая, что 'selectedFolder' является экземпляром вашего управляемого объекта Folder, просто назначьте примечание' selectedFolder.planner = note' – Paulw11

+0

Извините, я понял, когда перечитываю сообщение, сделал некоторые изменения. Хм, я не уверен, как это поможет мне сохранить textfield.text в «примечаниях» в классе «папка». – JUSDEV

+0

Я ничего не вижу о текстовом поле в вашем вопросе, однако предположительно вы сохранили бы текст в атрибуте объекта «Примечание». Строка в моем комментарии показывает, как установить взаимосвязь между папкой и записью, хотя, думая об этом, вы, вероятно, хотите иметь отношение «многие» между папкой и записью с односторонним обратным отношением. Если вы установите это в своей модели, просто присвойте значение 'selectedFolder' атрибуту обратной связи в вашем объекте' Note' будет делать то, что вам нужно – Paulw11

ответ

1

Чтобы создать взаимно-однозначное отношение, вы можете установить его с обеих сторон. Сделайте это перед сохранением. Таким образом:

selectedFolder.planner = note 
// or 
note.folder = selectedFolder 

Конечно, это будет работать только если вы установили связь и правильно обратная связь в редакторе модели Core Data.

+0

Я уже установил отношения в модели данных. Я обновил свой код, к сожалению, получая ошибку при выполнении функции сохранения. [Testapp.Planner count]: непризнанный селектор, отправленный в экземпляр – JUSDEV

+0

Новая ошибка не имеет ничего общего с исходным сообщением. Вы должны принять этот ответ и задать новый вопрос. – Mundi

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