gpt4 book ai didi

ios - Objective-C - 分配、复制、保留

转载 作者:IT老高 更新时间:2023-10-28 11:23:35 25 4
gpt4 key购买 nike

我是 Objective C 的新手。我有 C 的基本知识,包括指针的概念。我有两个基本问题:

  1. 有人可以用一些类比解释分配、复制和保留之间的区别吗?
  2. 如何处理返回指针变量的函数,以及如何通过返回指针执行消息传递?

最佳答案

已更改文档的更新答案

信息现在分布在文档中的多个指南中。以下是必读 list :

这个问题的答案现在完全取决于您是使用 ARC 管理的应用程序(新项目的现代默认设置)还是强制手动内存管理。

Assign vs. Weak - 使用 assign 将属性指针设置为对象的地址,而不保留它或以其他方式管理它;如果分配给它的对象被释放,则使用 weak 使属性自动指向 nil。在大多数情况下,您会想要使用 weak,这样您就不会尝试访问已释放的对象(内存地址的非法访问 - “EXC_BAD_ACCESS”) '不执行适当的清理。

保留 vs. 复制 - 声明的属性默认使用 retain(因此您可以简单地完全省略它),并且无论是否分配了另一个对象,都会自动管理对象的引用计数到属性或设置为零;使用 copy 自动向新分配的对象发送 -copy 消息(这将创建传递对象的副本并将该副本分配给属性 - 有用(甚至必需)在某些情况下,分配的对象在设置为其他对象的属性后可能会被修改(这意味着修改/变异也将应用于该属性)。

关于ios - Objective-C - 分配、复制、保留,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4510913/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com