Я вижу некоторое интересное поведение при попытке доступа и изменения одного и того же PFObject
с двух разных контроллеров.Обновление PFObject с другого контроллера вида
У меня есть один контроллер вида, который имеет сильное свойство для PFObject
. Когда я представляю второй контроллер представлений, он обладает слабым свойством одного и того же типа, поэтому я устанавливаю это свойство равным первому свойству контроллера. Когда я изменяю данные PFObject
во втором контроллере представления, он обновляется в первом контроллере представления, потому что, по-моему, это тот же самый объект. Это работает очень хорошо.
Теперь, если я пытаюсь установить PFObject
равным nil
во втором контроллере, когда я возвращаюсь к первому контроллеру PFObject
по-прежнему определяется - это не nil
. Почему это? Мне нужно, чтобы второй контроллер просмотра редактировал тот же самый объект, которому владеет первый контроллер.
Было бы лучше сохранить свойство для самого первого контроллера во втором контроллере и вместо этого ссылаться на это публичное свойство вместо того, чтобы пытаться использовать два свойства для одного и того же объекта или что было бы рекомендовано в этом случае?
//First controller
@property (nonatomic, strong) PFObject *myObject;
//prepare for segue
//ensure myObject is not nil first, otherwise alloc init, then
secondController.myObject = self.myObject;
//Second controller
@property (nonatomic, weak) PFObject *myObject;
//somewhere in the code
self.myObject[SomeKey] = SomeValue; //works great, updates myObject in both controllers
self.myObject = nil; //doesn't affect the first controller's myObject
Мне нравится, как вы думаете, имеет смысл, спасибо. – Joey