Добавить ivars в @implementation

Для хорошей инкапсуляции достойные Objective-C программисты помещают свои частные ivars в частное расширение , объявленное в основном файле реализации, например:

// MyClass.m

@interface MyClass () {
    float value;
}
@end

@implementation MyClass
@end

Но недавно я нашел более простой способ скрыть частный ivars: ivars можно объявить в блоке {} после @implementation , например:

// MyClass.m

@implementation MyClass {
    float value;
}
@end

Это действительно удобно, когда нужно скрыть не частные методы, а только частные ivars.

Однако я не уверен в правильности его синтаксиса. Может ли кто-нибудь подтвердить или опровергнуть его с помощью некоторых канонических ссылок?

11
задан an0 13 January 2012 в 16:12
поделиться