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

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

@property (copy) NSMutableString *string;

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

Это известная проблема и есть ли обходные пути?

Спасибо :-)


person rubixibuc    schedule 07.11.2011    source источник


Ответы (1)


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

e.g.

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

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

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

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

person Michael Dautermann    schedule 07.11.2011