2015-02-23 3 views
1

У меня есть класс со многими строками и изменяемыми массивами. Все эти объекты представляют данные формы. Поэтому, если я изменяю текстовое поле или добавляю новую фотографию в массив, я сохраняю эти данные в своих свойствах объекта.Определить, было ли изменено хотя бы одно свойство объекта

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

Например, у меня есть несколько фотографий в массиве. Тогда я его сохраню. Когда я снова открываю этот экран, я вижу сохраненные фотографии, но сейчас хочу добавить новые фотографии.

Исходное состояние и состояние после добавления новых фотографий в массив будут разными, и я хочу отслеживать их.

Самый простой способ, который я вижу здесь, сохранить текущее состояние всех объектов, а затем сравнить его с новым stat.

Скажем, у меня есть следующие переменные:

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

можно использовать, например, KVC обнаружить, если какой-то объект был изменен, но он работает, например, для массива. Поэтому, если массив был изменен, мы можем предположить, что данные были изменены. Но, например, если у меня было имя свойства string @ «Alex», а затем я снова добавил строку @ «Alex» из текстового поля, я могу сравнить его с предыдущим состоянием и текущим состоянием и сделать вывод, что состояние было изменено, если строки будут другой. Правильно ли это?

ответ

2
  1. Вы можете попробовать Method Swizzling, например: http://nshipster.com/method-swizzling/. Чтобы подключить метод вызова метода.

  2. Вы можете использовать KVC или делегат для уведомления об изменении.

  3. Вы можете использовать immutable object, чтобы убедиться, что объект не изменен, а затем зацепите его при его создании.

+0

yep, я знаю о swizzling, как это, я думаю, что это здорово использовать этот вариант. –

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