Использование KVO с пользовательскими UITableViewCell и CoreData - PullRequest
0 голосов
/ 24 июня 2010

Я прочитал более тонны документации и учебных пособий по KVO, но я не нашел ни одной, которую смог бы абстрагировать для своего приложения.У меня есть табличное представление, которое использует пользовательский класс UITableViewCell, чтобы предоставить интерфейс для включения / выключения опций.В ячейке есть переключатель UIS, который я хотел бы «привязать» к логическим свойствам моей модели.Мне бы хотелось, чтобы при визуализации ячейки ей было присвоено свойство on элемента управления соответствующим образом для управляемого объекта, а когда я переворачивал этот элемент управления переключателем, объект модели обновлялся до нового значения.

Iначал работать над этим, но первый шаг, который я считал подходящим, не работает.

[switchControl  addObserver:self
    forKeyPath:@"on"
    options:0
    context:NULL];

- (void)observeValueForKeyPath:(NSString *)keyPath
                  ofObject:(id)object
                    change:(NSDictionary *)change
                   context:(void *)context
{
    NSLog(@"value changed");
}

Ответы [ 2 ]

1 голос
/ 23 июля 2010

Попробуйте это:

[switchControl  addObserver:self
    forKeyPath:@"on"
    options:NSKeyValueObservingOptionNew
    context:NULL];
0 голосов
/ 31 июля 2012

Вместо addObserver вы можете использовать addTarget, как показано ниже:

[switchControl addTarget:self action:@selector(photoSwitchChanged:)forControlEvents:UIControlEventValueChanged];

где целевая функция определяется следующим образом:

- (void)photoSwitchChanged:(UISwitch*)switch {
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...