Наблюдение сам в Какао

Почему исключения должны быть немного медленнее, чем нормальные возвраты?

, пока Вы не печатаете stacktrace к терминалу, сохраните его в файл или что-то подобное, блок выгоды больше не делает работы, чем другие блоки кода. Так, я не могу вообразить, почему "бросок новый my_cool_error ()" должен быть, это замедляется.

Хороший вопрос и я с нетерпением ждем дополнительной информации об этой теме!

5
задан Adam Ernst 9 August 2009 в 22:33
поделиться

3 ответа

Да, на самом деле нет никакой причины, по которой вы не можете наблюдать себя. Но, как вы сказали, как и любое наблюдение KVO, убедитесь, что вы удалили себя в качестве наблюдателя, прежде чем быть освобожденным.

Для протокола, один альтернативный способ сделать это, если вы просто говорите о простом ключе, - это написать собственный установщик и выполнить любой код, который вам нужен в установщике. Этот стиль делает более очевидным, каковы все эффекты вызова сеттера. Однако способ KVO более гибкий и работает с ключевыми путями, которые содержат несколько компонентов.

12
ответ дан 13 December 2019 в 05:39
поделиться

Я делаю то, что сказал Брайан Вебстер. Вот пример:

//.h
...
@property(readwrite, retain, setter=setMyPropertySynth:) id myProperty;
-(void)setMyProperty:(id)newValue;
....


//.m
...
@synthesize myProperty;

-(void)setMyProperty:(id)newValue
{
    //add code here

    [self setMyPropertySynth:newValue];

    //add more code here
}
...
1
ответ дан 13 December 2019 в 05:39
поделиться

Не удаляйте наблюдателя в -dealloc . Почему? Потому что, когда вы включите сборщик мусора, все перестанет работать; -dealloc никогда не вызывается. Вам просто нужно использовать методы -dealloc и -finalize для кода очистки , связанного с памятью.

-1
ответ дан 13 December 2019 в 05:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: