Имеет ли сильная ссылка переменную, объявленную в расширении класса? - PullRequest
0 голосов
/ 11 мая 2018

Если я объявлю переменную для расширений класса в файле .m, будет ли это все со строгой ссылкой? Можно ли так заявлять или нет?

    @interface ClassA ()
    {
      UILabel *timeLabel;
      BOOL isNewUI;
    }
    @end

    @implementation ClassA

1 Ответ

0 голосов
/ 11 мая 2018

То, как вы объявляете свои переменные, известно как использование iVar, по умолчанию они сильны. Я бы не рекомендовал объявлять переменные таким образом, поскольку это не позволяет вам легко переопределять методы получения / установки или помечать их как доступные только для чтения.

Вместо этого я бы предложил вам объявить переменные следующим образом:

@interface ClassA ()

    @property (strong, nonatomic) UILabel *timeLabel;
    @property (assign, nonatomic) BOOL isNewUI;

@end

@implementation ClassA

@end

Это позволит вам выбрать, является ли ваша собственность UILabel сильной или слабой. Если он слабый и удален из вашего поля зрения, ARC позаботится об удалении ссылки для вас.

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