Я работаю с AS3. В AS3, когда вы назначаете объект переменной, вы не копируете объект в переменную, эта переменная становится ссылкой на объект.
var myObject = new MyClass();
myObject.name = "Bananas";
var myRef = {};
myRef.ref = myObject;
trace(myRef.ref.name); // Bananas
myObject.name = "Mango";
trace(myRef.ref.name); // Mango
myObject = null;
trace(myRef.ref); // null
В Objective C, AFAIK, когда вы назначаете некоторый объект какому-либо свойству другого объекта, "объект скопирован. Мое замешательство связано с тем, что после использования временного объекта вы можете его освободить.
NSMutableString* myString = [[NSMutableString alloc] initWithString:@"Hello"];
[myLabel setText:myString];
[myString release];
... если вы можете освободить, это означает, что он вам больше не нужен. Так он скопирован? или" текст "свойство в myLabel является ссылкой на myString?
Как вы можете догадаться, я только начинаю в мире Objective C.
TIA