当我们可以编写[NSString new]时,为什么会有[NSString string]?

流行内核

显然,我不只是在指NSString。[NSDictionary dictionary][NSArray array]等等。但是,为什么只要可以发送等等[NSDictionary new]就拥有所有这些方法[NSArray new]

脚本

原因主要是历史原因,因为两者之间的区别是所创建对象的引用计数。自动参考计数几乎完全消除了对参考计数的关注。

+string 以及类似的方法会返回调用者不拥有的对象(它们位于自动释放池中)。+new另一方面,它是“四个NARC”之一,它确实创建了拥有的引用。

在ARC之前,您将选择一种在特定情况下具有所需的内存管理含义的组件。现在,您可以使用任何您喜欢的东西。在代码级别上没有区别。

在某些循环情况下,您可能会发现它更可取,+new因为与相比,显然仍会缩短对象的寿命+string

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

当我们使用String的intern方法时,创建了多少个对象

来自分类Dev

当我们使用String的intern方法时,创建了多少个对象

来自分类Dev

为什么将string []解释为object [],而不是object,但是我们可以将object obj = new string []分配?

来自分类Dev

当我们在webservice.asmx.cs中编写所有代码时,webservice.asmx的用途是什么?

来自分类Dev

javascript中的string是不可变的,但是当我们在字符串中使用let时,它会变得可变,

来自分类Dev

当我们有一个红色区域时,为什么我们需要堆栈分配?

来自分类Dev

当我们有一个红色区域时,为什么我们需要堆栈分配?

来自分类Dev

为什么我们可以在C语言之外编写代码?

来自分类Dev

为什么我打印结果时ORMLite会有延迟?

来自分类Dev

为什么我们有std :: string :: npos但没有std :: vector :: npos?

来自分类Dev

当编写“最频繁值”的模板算法时,我们可以作为“ NaN”返回什么?

来自分类Dev

当我们可以推迟RealClass中昂贵的过程时,为什么还要使用代理模式呢?

来自分类Dev

当我们可以简单地分配它时,为什么在Python中使用内置的copy()函数呢?

来自分类Dev

当我们可以通过&运算符传递变量的地址时,为什么要通过指针传递?

来自分类Dev

当我们可以简单地分配它时,为什么在python中使用内置的copy()函数呢?

来自分类Dev

当我们可以在函数主体中定义变量时,为什么在函数中使用参数?

来自分类Dev

当我们在R中输入列表变量时,有什么方法可以决定打印什么?

来自分类Dev

当我将项目命名为“ Foundation”时,Swift:String无法转换为NSString

来自分类Dev

当我们有IDistributedCache时,为什么要使用IMemoryCache?

来自分类Dev

当我们已经有了“ apt-get”时,为什么要制作“ apt”?

来自分类Dev

当我们有组件时,为什么还需要服务?

来自分类Dev

当我们知道外键与之关联时,有什么方法可以找到外键

来自分类Dev

当我们单击链接标记javascript内的跨度时,可以防止链接的行为

来自分类Dev

WEBRTC:当我们进行音频流传输时,是否可以控制每个音轨的音量?

来自分类Dev

当我们可以使用父对象时,泛型会受益

来自分类Dev

当我们使用 group by 时是否可以访问组中的行

来自分类Dev

当我们可以看到一个简单的 vb6 压缩 dll 时

来自分类Dev

当我们可以直接设置set HTTP相关的header时使用helmejs

来自分类Dev

为什么我们不能直接在 List<string> obj= new List<string>() 中添加值?

Related 相关文章

  1. 1

    当我们使用String的intern方法时,创建了多少个对象

  2. 2

    当我们使用String的intern方法时,创建了多少个对象

  3. 3

    为什么将string []解释为object [],而不是object,但是我们可以将object obj = new string []分配?

  4. 4

    当我们在webservice.asmx.cs中编写所有代码时,webservice.asmx的用途是什么?

  5. 5

    javascript中的string是不可变的,但是当我们在字符串中使用let时,它会变得可变,

  6. 6

    当我们有一个红色区域时,为什么我们需要堆栈分配?

  7. 7

    当我们有一个红色区域时,为什么我们需要堆栈分配?

  8. 8

    为什么我们可以在C语言之外编写代码?

  9. 9

    为什么我打印结果时ORMLite会有延迟?

  10. 10

    为什么我们有std :: string :: npos但没有std :: vector :: npos?

  11. 11

    当编写“最频繁值”的模板算法时,我们可以作为“ NaN”返回什么?

  12. 12

    当我们可以推迟RealClass中昂贵的过程时,为什么还要使用代理模式呢?

  13. 13

    当我们可以简单地分配它时,为什么在Python中使用内置的copy()函数呢?

  14. 14

    当我们可以通过&运算符传递变量的地址时,为什么要通过指针传递?

  15. 15

    当我们可以简单地分配它时,为什么在python中使用内置的copy()函数呢?

  16. 16

    当我们可以在函数主体中定义变量时,为什么在函数中使用参数?

  17. 17

    当我们在R中输入列表变量时,有什么方法可以决定打印什么?

  18. 18

    当我将项目命名为“ Foundation”时,Swift:String无法转换为NSString

  19. 19

    当我们有IDistributedCache时,为什么要使用IMemoryCache?

  20. 20

    当我们已经有了“ apt-get”时,为什么要制作“ apt”?

  21. 21

    当我们有组件时,为什么还需要服务?

  22. 22

    当我们知道外键与之关联时,有什么方法可以找到外键

  23. 23

    当我们单击链接标记javascript内的跨度时,可以防止链接的行为

  24. 24

    WEBRTC:当我们进行音频流传输时,是否可以控制每个音轨的音量?

  25. 25

    当我们可以使用父对象时,泛型会受益

  26. 26

    当我们使用 group by 时是否可以访问组中的行

  27. 27

    当我们可以看到一个简单的 vb6 压缩 dll 时

  28. 28

    当我们可以直接设置set HTTP相关的header时使用helmejs

  29. 29

    为什么我们不能直接在 List<string> obj= new List<string>() 中添加值?

热门标签

归档