Подумайте об этом: NSMutableString
- это подкласс NSString
. Когда ваша собственность объявлена как NSString
, вы не ожидаете, что она изменится.
Подумайте, если вы использовали retain
, и кто-то дал вам NSMutableString
, а потом изменил его, ваш класс будет нарушен.
Однако вы можете подумать, что всегда copy
медленный. Так что NSString
s copy
просто вызывает retain
. NSMutableString
s copy
делает фактическую копию.
Обычно лучше выдать плевок NSString *
, потому что людям не придется постоянно его копировать.