Я читаю «Руководство по программированию основных данных». Он содержит этот текст:реализация пользовательских методов доступа
You must, however, change attribute values in a KVC-compliant fashion. For example, the following typically represents a programming error:
NSMutableString *mutableString = [NSMutableString stringWithString:@"Stig"]; [newEmployee setFirstName:mutableString]; [mutableString setString:@"Laura"];
For mutable values, you should either transfer ownership of the value to Core Data, or implement custom accessor methods to always perform a copy. The previous example may not represent an error if the class representing the Employee entity declared the firstName property (copy) (or implemented a custom setFirstName: method that copied the new value). In this case, after the invocation of setString: (in the third code line) the value of firstName would then still be “Stig” and not “Laura”.
Вопрос о тексте: «В данном случае» есть что случай - один, где свойство объявляется как «копия» или когда его нет?
Вопрос относительно копирования и практике программирования: Из того, что я прочитал здесь: NSString property: copy or retain? Я понимаю
- , что использование копии гарантирует, что ПгвЬЫате является «Стиг», не Лаура
- разумно для этого, потому что «почти во всех случаях вы хотите предотвратить мутацию атрибутов объекта за его спиной»
Мне очень хотелось бы знать, что t - приведенный выше цитируемый текст, который пытается рассказать нам в контексте Core Data. В любом случае мы должны использовать «копию», используя Core Data или нет. Кроме того, я был бы рад, если бы кто-то мог пролить больше света на точку «2» (это разумно ...) выше, как в том, что будет последствиями изменения атрибутов объекта за его спиной?