Нет необходимости выставлять свойства всему миру.В вашем файле реализации .m вы можете добавить небольшую категорию для объявления «частных» свойств.Например,
#import "Class.h"
@interface Class ()
@property (nonatomic, strong) NSDate *privateProperty
@end
@implementation Class
@synthesize privateProperty;
...
@end
Ничто в Objective-C никогда не бывает по-настоящему приватным в строгих терминах, поэтому я бы сказал, что это хорошая практика - он скрывает почти все вещи сохранения / выпуска без необходимости в ARC-совместимой среде выполненияи имеет побочный эффект: вы вообще не обязаны указывать переменные экземпляра в заголовке (хотя есть и другие способы добиться этого).
Как историческая справка, я думаю, что это был первый способ перемещенияПеременные экземпляра вне заголовка - что разрешено только «новой» средой выполнения на iOS и 64-битной Intel 10.6+ - так что это может быть вторичной причиной, по которой ваша команда остановилась на этом.Если они явно не сказали вам сделать ваши классы прозрачными, они могут фактически полностью соответствовать вашему чувству (и общепринятому объектно-ориентированному принципу), что реализации должны быть непрозрачными.