NSMutableString и настройка методов доступа Objective-C 2.0

#accessor #objective-c-2.0

#средство доступа #objective-c-2.0

Вопрос:

Существует атрибут копирования для синтезированных методов доступа, например:

 @property (copy) NSMutableString *string;
  

При назначении с использованием этого метода настройки, кажется, всегда вызывается метод копирования, хотя я хотел бы создать изменяемую копию того, что я когда-либо назначал string , во время назначения переменной экземпляра string .

Является ли это известной проблемой и существуют ли какие-либо обходные пути?

Спасибо 🙂

Ответ №1:

Не вызывайте @synthesize string в вашем файле реализации .m и вместо этого напишите свой собственный метод получения.

например

 - (NSMutableString *) string
{
    NSMutableString * stringToReturn = [NSMutableString stringWithString: someStringObject];
}
  

Более подробную информацию о свойствах (и что делать, если вы этого не делаете @synthesize ) можно найти на:

http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/Chapters/ocProperties.html

p.s. имя свойства «string» может ввести в заблуждение любого, кто посмотрит на ваш код в будущем… Я бы рекомендовал изменить это, чтобы оно было более специфичным для программы