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