检测是否至少修改了对象的一个​​属性

问题描述:

我有许多字符串和可变数组的类。所有这些对象都表示表单数据。所以,如果我修改文本字段或将新照片添加到数组,我将这些数据保存在我的对象属性中。检测是否至少修改了对象的一个​​属性

如何创建验证程序来检查是否更改了某些属性。

例如,我添加了一些照片数组。然后我保存它。当我再次打开此屏幕时,我看到保存的照片,但现在我想添加新照片。

将新照片添加到数组后,初始状态和状态会有所不同,我想跟踪它。

我在这里看到的最简单的方法是保存所有对象的当前状态,然后将它与新的属性进行比较。

比方说,我有下一个变量:

NSString *name; 
NSString *lastName; 
NSMutableArray *photos; 

我可以使用例如KVC来检测,如果某个对象进行了修改,但它的工作原理,例如用于阵列。所以如果数组被修改了,我们可以假设数据已经改变了。但例如,如果我的属性名称有字符串@“亚历克斯”,然后我再次从文本字段中放入字符串@“亚历克斯”,我可以将它与以前的状态和当前状态进行比较,并得出结论说,如果字符串是不同。这是对的吗?

  1. 您可以尝试Method Swizzling,例如:http://nshipster.com/method-swizzling/。钩住你的设置方法是否被调用。

  2. 您可以使用KVC或委托通知更改。

  3. 你可以使用immutable object来确保你的对象没有改变,然后在创建时挂钩。

+0

是的,我知道有关它的喜欢,我觉得使用这个选项很棒。 – 2015-02-24 14:25:00