问题标签 [automatic-ref-counting]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
805 浏览

objective-c++ - ARC下Objective-C++中的C++成员变量

我正在尝试在 Objective-C++ 类中使用 C++ 成员。像这样的东西:

如果没有 ARC,我可以使用子类化 init 和 dealloc 方法来管理 cppMember。但是在 ARC 下我不能这样做,因为在子类化 dealloc 时我不能这样写:

有什么想法吗?

谢谢!

0 投票
1 回答
3557 浏览

iphone - 自动引用计数 (ARC) 中的 NSThreads

我正在尝试在 4.3.5 中将 NSThreads 与 ARC 一起使用。使用 iOS 5 一切正常,但如果我在 4.3 等较旧的 iOS 上尝试它,它就会泄漏。通常我会为 NSThreads 使用 Autoreleasepool 但由于 ARC 中没有手动 Autoreleasepool 我不知道如何解决这个问题。

启动线程后,我在控制台中收到大量消息,例如“__NSAutoreleaseNoPool(): NSComparisonPredicate 类的对象 0x4567b40 自动释放而没有适当的池 - 只是泄漏”。

如何正确使用 ARC 和 iOS 5.0 之前的线程。

干杯nettz

0 投票
1 回答
2128 浏览

iphone - Objective-C SCNetworkReachabilityContext ARC 转换

在将应用程序转换为使用自动引用计数时,我遇到了这个错误:

ARC 不允许将 Objective-C 指针隐式转换为“void *”

这修复了编译器错误,但会发出警告:

如何摆脱这个警告?

用“objc_objectptr_t”(又名“const void *”)类型的表达式初始化“void *”会丢弃限定符

0 投票
1 回答
6410 浏览

ios - 我应该在自动引用计数 (ARC) 下继续使用 iVar 和 @property(非原子,保留)加上 @synthesize 吗?

就像我在接口 .h 文件中声明即时变量 (iVar) 和 @property 一样有一段时间了。

在自动引用计数下,我是否应该放弃 iVar 并全部使用 @property?我什至应该在财产中使用“保留”一词吗?如果我正在为 iOS 4.3 进行部署,我还应该使用 ARC 吗?

0 投票
2 回答
36090 浏览

objective-c - 编译时出现ARC错误

我正在尝试使用 LLVM GCC 4.0 编译器进行编译,并且在我的多个 .m 文件中出现此错误: ARC forbids explicit message send of 'release' 我尝试使用 -fno-objc-arc 作为编译器标志但这会返回错误:无法识别的命令行选项“-fno-objc-arc”。

我该如何解决这个问题?

0 投票
1 回答
1710 浏览

iphone - 如何从包含它的所有数组中删除一个对象?

我正在为 iOS 5 开发,假设我有 2 个数组,第二个数组只包含第一个数组中包含的项目。

我想在它存在的每个数组中删除这个对象。

那么,有没有一种方法可以轻松地从包含它的所有数组中删除一个对象?

0 投票
3 回答
3003 浏览

objective-c - 核心数据属性更改为 nil(与 ARC 相关?)

我有一些 Core Data 功能可以正常工作,直到最近进行了一些(看似无关的)更改。现在我遇到了属于特定 NSManagedObject 子类实例的所有属性突然返回 nil 的问题。

假设我的 NSManagedObject 子类名为 Foo,它只有一个名为 value 的属性。一旦我意识到价值以某种方式变为零,我就去设置以下类别来监控价值的变化。

setValue: 为我的对象调用,传入的参数是非零 NSDate。然后检索该值(以另一种方法)。正确检索指定的相同值。

但是,当另一个方法尝试读取值时,会调用值访问器,并且primitiveValueForKey: 返回一个 nil 值。

在两次读取之间 setValue: 未被调用并且 Foo 对象本身仍然有效(非零)。事实上,在对任何 Core Data 对象或整个上下文的两次读取之间没有执行其他 Core Data 操作。

我们在项目中使用 ARC。ARC是否有可能以某种方式弄乱我的核心数据变量并释放它们?如果是这样,是否有人对调试 ARC 释放有任何建议?或者更好的是,有没有人知道一种方法来确保 ARC 不会释放我的变量。

这甚至可能与 ARC 无关,但是我对正在发生的事情有点茫然。任何建议将不胜感激。

0 投票
7 回答
47675 浏览

cocoa-touch - 在启用 ARC 的代码中修复警告“在此块中强烈捕获 [an object] 可能会导致保留周期”

在启用 ARC 的代码中,如何在使用基于块的 API 时修复有关潜在保留周期的警告?

警告:
Capturing 'request' strongly in this block is likely to lead to a retain cycle

由这段代码产生:

警告与request块内对象的使用有关。

0 投票
2 回答
14956 浏览

objective-c - 在 ARC 下,如何释放 NSArray 中的元素?

在标准的 Objective-C 手动内存管理下,在这个问题中建议释放使用初始化的 NSArray 的方式

是用

鉴于我们不再可以-release在自动引用计数下使用,建议在 ARC 下释放这个 NSArray 的方法是什么?

0 投票
2 回答
4111 浏览

cocoa - 使用 [NSValue valueWithPointer:t] 时,如何解决“不允许将 Objective-C 指针隐式转换为‘const void’”错误?

使用以下消息时,如何修复错误“不允许将 Objective-C 指针隐式转换为 'const void'”:

非常感谢可以提供如果简单的新手术语,为什么此代码会引发此异常的人。

如果有帮助,这是完整的方法: