Was bedeutet Eigenschaftskopie in Cocoas Framework? (wie die Eigenschaft items von UITabBar)

In UITabBar.h eine eigensignierte Kopie

@property (nichtatomar, Kopie) NSArray * Elemente; // sichtbar machen / setzen

Es ist ein Array Und was bedeutet "kopieren"? Kopieren Sie NSArray Container obj? Kopieren Sie jedes Objekt, das NSArray enthält? oder so.

Es gibt also einen Test
UITabBar* testBar = [[UITabBar alloc] init];
UITabBarItem* item = [[UITabBarItem alloc] init];
NSArray* array = [[NSArray alloc] initWithObjects:item, nil];

NSLog(@"bar:%p,%d", testBar, testBar.retainCount);
NSLog(@"item:%p,%d", item, item.retainCount);
NSLog(@"array:%p,%d", array, array.retainCount);

testBar.items = array;

NSLog(@"that item:%p,%d", [testBar.items lastObject], [[testBar.items lastObject] retainCount]);
NSLog(@"testBar.items:%p,%d", testBar.items, testBar.items.retainCount);
Ergebnis

Balken: 0x96a9750,1

item: 0x96aa230,2

Array: 0x96aa280,1

das Item: 0x96aa230,2

testBar.items: 0x96aa280,6

warum wurde weder container array noch obj in array "kopiert"?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage