Как объявить неизменяемое свойство, поддерживаемое изменяемым типом?

Я хотел бы объявить публичную неизменную собственность:

@interface Foo
@property(strong, readonly) NSSet *items;
@end

… Поддержанный изменяемым типом в файле реализации:

@interface Foo (/* private interface*/)
@property(strong) NSMutableSet *items;
@end

@implementation
@synthesize items;
@end

То, что я хочу, - это изменяемая коллекция в реализации, которая преобразуется в неизменную при обращении извне. (Мне все равно, что вызывающая сторона может привести экземпляр обратно кNSMutableSet и нарушить инкапсуляцию. Я живу в тихом, приличном городе, где таких вещей не бывает.)

Прямо сейчас мой компилятор обрабатывает свойство какNSSet внутри реализации. Я знаю, что есть много способов заставить его работать, например, с помощью пользовательских геттеров, но есть ли способ сделать это просто с объявленными свойствами?

Ответы на вопрос(3)

Ваш ответ на вопрос