Я думаю, то, что вы ищете, называется расширением класса.Вы должны объявить свойство только для чтения в заголовке:
@interface MyClass : NSObject {
}
@property (readonly, assign) NSInteger myInteger;
@end
Затем повторно объявите расширение вашего класса в файле реализации:
@interface MyClass ()
@property (readwrite, assign) NSInteger myInteger;
@end
@implementation MyClass
@end
Для получения дополнительной информации см. Документацию Apple