2015-02-23 61 views
1

我有許多字符串和可變數組的類。所有這些對象都表示表單數據。所以,如果我修改文本字段或將新照片添加到數組,我將這些數據保存在我的對象屬性中。檢測是否至少修改了對象的一個​​屬性

如何創建驗證程序來檢查是否更改了某些屬性。

例如,我添加了一些照片數組。然後我保存它。當我再次打開此屏幕時,我看到保存的照片,但現在我想添加新照片。

將新照片添加到數組後,初始狀態和狀態會有所不同,我想跟蹤它。

我在這裏看到的最簡單的方法是保存所有對象的當前狀態,然後將它與新的屬性進行比較。

比方說,我有下一個變量:

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

我可以使用例如KVC來檢測,如果某個對象進行了修改,但它的工作原理,例如用於陣列。所以如果數組被修改了,我們可以假設數據已經改變了。但例如,如果我的屬性名稱有字符串@「亞歷克斯」,然後我再次從文本字段中放入字符串@「亞歷克斯」,我可以將它與以前的狀態和當前狀態進行比較,並得出結論說,如果字符串是不同。這是對的嗎?

回答

2
  1. 您可以嘗試Method Swizzling,例如:http://nshipster.com/method-swizzling/。鉤住你的設置方法是否被調用。

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

  3. 你可以使用immutable object來確保你的對象沒有改變,然後在創建時掛鉤。

+0

是的,我知道有關它的喜歡,我覺得使用這個選項很棒。 – 2015-02-24 14:25:00

相關問題