О преимуществах использования переменных ivar вместо геттеров - PullRequest
2 голосов
/ 26 января 2012

Хотя я использую синтаксис Objective-C, независимость от языка вопросов.

Предполагая следующее объявление

@synthesize activities = _activities;

self.activities вызовет получатель, а _activities проверит значение, которое уже было присвоено. Насколько я понимаю, главное преимущество этого назначения состоит в том, чтобы четко различать, когда вызывается сеттер и когда вместо него вызывается локальная переменная.

Хотя это хорошо, в чем реальное ощутимое преимущество использования ivar по сравнению с использованием методов получения?

Я могу думать об одном, что другие?

  • Полагаю, использование ivar быстрее, чем вызов геттера, но по сравнению с тем, что происходит с сенсорными событиями, разница незначительна.

1 Ответ

1 голос
/ 26 января 2012

Доступ к переменным экземпляра напрямую означает обход любой защиты атомарности и управления памятью, предоставляемой синтезированными средствами доступа. Если вам ясно, когда вы это делаете, проще проверить такой доступ, чтобы убедиться, что вы сами следите за этими аспектами поведения класса.

...