作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我应该在下面的代码中释放 NSBundle
吗? NSURL
是否也应该发布?我很困惑。
NSBundle *mainBundle = [NSBundle mainBundle];
NSError *error;
NSURL *audioURL = [NSURL fileURLWithPath:[mainBundle pathForResource:@"count_in" ofType: @"mp3"]];
AVAudioPlayer *player1 = [(AVAudioPlayer*) [AVAudioPlayer alloc] initWithContentsOfURL:audioURL error:&error];
self.player = player1;
[self.player play];
[player1 release];
最佳答案
你不应该释放 NSBundle
和 NSURL
实例,因为你还没有分配它们。
来自苹果文档。
You take ownership of an object if you create it using a method whose name begins with “alloc”, “new”, “copy”, or “mutableCopy” (for example, alloc, newObject, or mutableCopy), or if you send it a retain message.
You use release or autorelease to relinquish ownership of an object. autorelease just means “send a release message in the future” (specifically: when the used autorelease pool receives a drain message—to understand when this will be, see “Autorelease Pools”).
我强烈建议您清除内存管理概念。
阅读关于苹果的文章 Memory Management Rules
关于ios - 我应该在声音中发布 NSBundle 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6178948/
我是一名优秀的程序员,十分优秀!