UITabBar.hで、適切に署名されたコピー
@property(nonatomic、copy)NSArray * items; //表示する/設定する
それは配列ですそして「コピー」とはどういう意味ですか?NSArrayコンテナobjをコピーしますか?NSArrayに含まれるすべてのobjをコピーしますか?か何か。
だからテストがあります
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);
結果
バー:0x96a9750,1
アイテム:0x96aa230,2
アレイ:0x96aa280,1
そのアイテム:0x96aa230,2
testBar.items:0x96aa280,6
コンテナ配列も配列内のobjも「コピー」されていないのはなぜですか?