问题标签 [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 投票
3 回答
7923 浏览

objective-c - AVAudioPlayer 立即停止播放 ARC

我正在尝试通过播放 MP3AVAudioPlayer我认为相当简单的 MP3。不幸的是,它并不完全有效。这是我所做的一切:

  • 为了测试,我在 Xcode 中创建了一个新的 iOS 应用程序(Single View)。
  • #import <AVFoundation/AVFoundation.h>我将 AVFoundation 框架添加到项目以及ViewController.m

  • 我在 Apps 'Documents' 文件夹中添加了一个 MP3 文件。

  • 我将其更改ViewControllers viewDidLoad:为以下内容:

代码:

不幸的是,音频显然在开始播放后立即停止。如果我取消注释sleepForTimeInterval它会播放 20 秒然后停止。仅在使用 ARC 编译时才会出现此问题,否则,它可以完美运行。

0 投票
2 回答
5824 浏览

cocoa - 如何在启用 ARC 的情况下部署到 Snow Leopard

我有一个想要迁移到 ARC 的 OSX 应用程序。如果我将基本 SDK 设置为 10.7,一切正常。但是当我将它设置为 10.6 时它不起作用(因为它没有找到 _objc_release 等)。那么如何在启用 ARC 的情况下将我的应用程序部署到 10.6?

0 投票
3 回答
2375 浏览

objective-c - iOS 3.x 上的自动引用计数

使用 arc 打开编译的应用程序是否适用于 iOS 3.1.x 设备?理想情况下,我想让我们的应用程序仅适用于 iOS 4.x 及更高版本,但我们仍有一些用户运行 iOS 3.x。我不再可以访问装有 iOS 3 的设备。

有人测试过吗?

0 投票
1 回答
3454 浏览

objective-c - 在预编译中检查 ARC

我有一个 iOS 重构库,我想使用和不使用 ARC 编译选项。有没有办法在编译期间检测,比如#ifdefARC 是否可用?

0 投票
1 回答
7184 浏览

objective-c - iOS 5 Blocks ARC 桥接演员表

这个问题引用了这个问题: 如何使用块简化回调逻辑?

我的标题有这些 typedef

并在初始化

在本文中,它说 Block_copy 是不必要的。但是它需要一个桥接演员表。编译器消息如下:

0 投票
1 回答
476 浏览

avfoundation - Automatic Retain Count, AVFoundation:包含非客观 C 对象的字典。如何用 ARC 做到这一点?

我实际上正在将我的一些源文件转换为 ARC。ARC 非常好,节省时间和内存泄漏。实际上,我正在尝试转换我的 AVFoundation 代码,并在一行非常特殊的代码中达到了我的极限:

“色彩空间”是 CGColorSpaceRef 又名 CGColorSpace* 的类型。CGColorSpace 是一个结构体,不能转换为 id。我对此感到非常惊讶,因为代码总是对我有用(CIImage 正确使用了色彩空间)。我无法使用 ARC 运行编译器,因为色彩空间不是客观的 C 对象。编译器(使用 ARC)拒绝将颜色空间添加到字典中。

有谁知道如何替换这本字典中的“颜色空间”,或者如何告诉编译器,使用这个颜色空间指针没问题?

0 投票
1 回答
4358 浏览

ios - ARC Objective-C 中的输出参数

我正在使用Objective-C,并且在使用ARC编译器编译代码时,我不知道如何创建和调用没有参数的方法。

这是我试图在非 ARC Objective-C 中完成的事情(无论如何这可能是错误的)。

我在这里阅读了文档: https ://clang.llvm.org/docs/AutomaticReferenceCounting.html

在这里: https ://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/ObjectiveC/Chapters/ocProperties.html

...但是我发现很难得到任何可以编译的东西,更不用说任何正确的东西了。任何人都能够以适合 ARC Objective-C 的方式重写上述代码的 jist 吗?

0 投票
2 回答
17832 浏览

iphone - iOS 4 真的支持 ARC 吗?iOS 4.2 SDK 在链接时缺少与 ARC 相关的符号

自从 ARC 首次宣布它是一个编译时的东西并且将与 iOS 4 向后兼容以来,我已经阅读和听说过。我已经使用 Xcode 4.2 的自动重构成功地将我的项目重构为 ARC,并且在针对iOS 5.0 SDK,它工作正常。但是,如果我尝试针对我的 iOS 4.2 SDK 进行编译,它会在链接时失败,缺少以下符号:

  • _objc_retainAutoreleaseReturnValue
  • _objc_autoreleaseReturnValue
  • _objc_storeStrong
  • _objc_retain
  • _objc_release
  • _objc_retainAutoreleasedReturnValue

我检查了,这些符号出现在 5.0 但不是 4.2:

这是否意味着苹果在撒谎?相反,我假设我很困惑并且做错了什么,但我不知道是什么。

这是 Xcode 4.2 (Build 4C199) 的 GM 版本

0 投票
1 回答
1018 浏览

objective-c - ARC:使用自定义设置器转换保留的声明属性

我正在尝试将项目转换为使用 ARC。

我有一个这样的声明属性:

接口中setter方法的声明:

我有一个如下所示的 setter 实现:

尝试使用“转换为 Objective-C ARC ...”工具时出现错误:

错误:属性“someProperty”的类型与访问器“setSomeProperty:”的类型不匹配 [-Werror,3]

0 投票
3 回答
3720 浏览

xcode - Xcode 和 ARC 调试问题(跳过 dealloc)

我花了一些时间调试 ARC 和自定义 dealloc 函数的一个奇怪问题。

  1. 我正在继承NSOperation
  2. 我为此操作设置了完成块
  3. 该操作被非常扁平对象的强属性引用(无方法,自动 ivars,两个强属性)让我们调用这个对象DataRequest
  4. 遵循所有准则,完成块仅使用对本地对象的弱引用(包括操作本身)
  5. 编译器和分析器都不会产生任何问题
  6. DataRequest持有对我生成的操作的唯一引用,并在操作完成块中被销毁。它总是被摧毁(它dealloc总是被执行)
  7. 我的操作有一个习惯dealloc。我只有一个 NSLog 调用。

...问题是:

如果我在调试器中运行它,则永远不会命中 dealloc 中的断点,永远不会出现日志消息。首先,我认为该操作正在泄漏。

如果我在仪器中运行它,一切都很好,系统控制台会打印消息,并且分配仪器报告操作正在从正确的堆栈快照中释放,包括自定义释放。未检测到泄漏。

我 100% 确定我使用相同的编译器设置进行调试和分析。

最后最令人困惑的事情是:如果我创建了一个自定义版本[DataRequest dealloc]并投入self.operation = nil;使用 - 即使在调试器中也一切正常。

有没有人有一些提示什么编译器链接器选项来尝试看到一些差异?这可能是 Apple 工具中的错误吗(我们所有人都处于将自己的错误归咎于一条大鱼的位置,对吗?)

...是的,我尝试过使用 GDB 和 LLDB。结果是一样的——什么可能表明什么。

我试图创建一个简约的样本,但它确实有效(确实);)

谢谢