objective-c - 我是否需要释放 Objective-C 代码中的 C 变量(带有 ARC 的 iOS 6)?

标签 objective-c c ios6 automatic-ref-counting

如果我在 iPhone 代码中实现以下内容:

NSString* soundPath = [[NSBundle mainBundle] pathForResource:soundFile ofType:@"wav"];
SystemSoundID feedbackSound;
AudioServicesCreateSystemSoundID((__bridge CFURLRef) [NSURL fileURLWithPath:soundPath], &feedbackSound);
AudioServicesPlaySystemSound(feedbackSound);

我真的必须释放“feedbackSound”因为它是 C 代码吗?会不会漏?

我使用的是 ARC/iOS 6。

最佳答案

你应该。正确的调用方法是:

AudioServicesDisposeSystemSoundID

(reference)。

一般来说,ARC 只处理 Objective-C 对象。当您处理较低级别的框架(Core Graphics、AudioServices 等)时,许多调用将在“幕后”分配内存,您负责处理这些内存。在许多情况下,您有特定的方法来进行重新分配,就像您进行分配一样。

关于objective-c - 我是否需要释放 Objective-C 代码中的 C 变量(带有 ARC 的 iOS 6)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15173832/

相关文章:

ios - 单例 UIViewController

iphone - Objective-c 同一 View 中的多个委托(delegate) - ECSlidingViewController

objective-c - 桥接头方法参数问题

有人可以告诉用户如何让用户输入数组中的元素并在最后一个位置插入元素吗?

objective-c - 选择器/方法名称作为字符串参数

iphone - 是否可以在不启动核心定位的情况下询问用户当前位置

ios - 如何将一个 View Controller 方向单独强制/锁定到 landscapeRight?

c - 了解 C 中的函数指针和插入排序

c - 在 OSX 上,为什么/usr/bin/cpp 不支持宏参数的字符串化,而 gcc -E 和 clang -E 支持?

iphone - 如何强制 UIWebView 读取 NSHTTPCookie