<legend id='CagE1'><style id='CagE1'><dir id='CagE1'><q id='CagE1'></q></dir></style></legend>
    <tfoot id='CagE1'></tfoot>
  • <small id='CagE1'></small><noframes id='CagE1'>

    <i id='CagE1'><tr id='CagE1'><dt id='CagE1'><q id='CagE1'><span id='CagE1'><b id='CagE1'><form id='CagE1'><ins id='CagE1'></ins><ul id='CagE1'></ul><sub id='CagE1'></sub></form><legend id='CagE1'></legend><bdo id='CagE1'><pre id='CagE1'><center id='CagE1'></center></pre></bdo></b><th id='CagE1'></th></span></q></dt></tr></i><div id='CagE1'><tfoot id='CagE1'></tfoot><dl id='CagE1'><fieldset id='CagE1'></fieldset></dl></div>

      <bdo id='CagE1'></bdo><ul id='CagE1'></ul>

        Cocoa 框架中的属性副本是什么意思?(如 UITabBar 的 items 属性)

        时间:2024-04-15

          <small id='ey3b2'></small><noframes id='ey3b2'>

          1. <tfoot id='ey3b2'></tfoot>

                <tbody id='ey3b2'></tbody>
              <i id='ey3b2'><tr id='ey3b2'><dt id='ey3b2'><q id='ey3b2'><span id='ey3b2'><b id='ey3b2'><form id='ey3b2'><ins id='ey3b2'></ins><ul id='ey3b2'></ul><sub id='ey3b2'></sub></form><legend id='ey3b2'></legend><bdo id='ey3b2'><pre id='ey3b2'><center id='ey3b2'></center></pre></bdo></b><th id='ey3b2'></th></span></q></dt></tr></i><div id='ey3b2'><tfoot id='ey3b2'></tfoot><dl id='ey3b2'><fieldset id='ey3b2'></fieldset></dl></div>
                <bdo id='ey3b2'></bdo><ul id='ey3b2'></ul>

                • <legend id='ey3b2'><style id='ey3b2'><dir id='ey3b2'><q id='ey3b2'></q></dir></style></legend>
                • 本文介绍了Cocoa 框架中的属性副本是什么意思?(如 UITabBar 的 items 属性)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  在 UITabBar.h 中,一个属性签名的副本

                  In UITabBar.h, a propery signed copy

                  @property(nonatomic,copy) NSArray *items;//获取/设置可见

                  @property(nonatomic,copy) NSArray *items; // get/set visible

                  这是一个数组复制"是什么意思?复制 NSArray 容器 obj?复制每个 obj NSArray 包含的内容?什么的.

                  It's a array And what "copy" means? copy NSArray container obj? copy every obj NSArray contains? or something.

                  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

                  result

                  bar:0x96a9750,1

                  项目:0x96aa230,2

                  item:0x96aa230,2

                  数组:0x96aa280,1

                  array:0x96aa280,1

                  那个项目:0x96aa230,2

                  that item:0x96aa230,2

                  testBar.items:0x96aa280,6

                  testBar.items:0x96aa280,6

                  为什么容器数组和数组中的obj都没有被复制"?

                  why neither container array nor obj in array has been "copied"?

                  推荐答案

                  这种情况下没有复制的原因是NSArray不可变的.您不需要复制它来防止对数组进行更改,因为无法进行此类更改;保留相同的不可变数组就足够了.

                  The reason the copy has not been made in this case is that NSArray is immutable. You do not need to make a copy of it to guard against changes to the array, because such changes cannot be made; it is sufficient to retain the same immutable array.

                  如果你用 NSMutableArray 尝试这个实验,你会得到不同的结果.

                  If you try this experiment with NSMutableArray, you will get a different result.

                  这篇关于Cocoa 框架中的属性副本是什么意思?(如 UITabBar 的 items 属性)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:Sqlite 数据库未从资产文件夹 Android 复制 下一篇:没有了

                  相关文章

                  <i id='xfe2K'><tr id='xfe2K'><dt id='xfe2K'><q id='xfe2K'><span id='xfe2K'><b id='xfe2K'><form id='xfe2K'><ins id='xfe2K'></ins><ul id='xfe2K'></ul><sub id='xfe2K'></sub></form><legend id='xfe2K'></legend><bdo id='xfe2K'><pre id='xfe2K'><center id='xfe2K'></center></pre></bdo></b><th id='xfe2K'></th></span></q></dt></tr></i><div id='xfe2K'><tfoot id='xfe2K'></tfoot><dl id='xfe2K'><fieldset id='xfe2K'></fieldset></dl></div>

                      <bdo id='xfe2K'></bdo><ul id='xfe2K'></ul>

                  1. <tfoot id='xfe2K'></tfoot>

                    <legend id='xfe2K'><style id='xfe2K'><dir id='xfe2K'><q id='xfe2K'></q></dir></style></legend>

                    <small id='xfe2K'></small><noframes id='xfe2K'>