Ios 我应该在声音中释放NSBundle吗?

Ios 我应该在声音中释放NSBundle吗?,ios,objective-c,memory-management,Ios,Objective C,Memory Management,我是否应该在下面的代码中释放NSBundleNSURL是否也应发布? 我很困惑 NSBundle *mainBundle = [NSBundle mainBundle]; NSError *error; NSURL *audioURL = [NSURL fileURLWithPath:[mainBundle pathForResource:@"count_in" ofType: @"mp3"]]; AVAudioPlayer *player1 = [(AVAudioPlayer*)

我是否应该在下面的代码中释放
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
实例,因为您尚未分配这些实例

苹果文档中的

如果使用的方法是 名称以“alloc”、“new”开头, “复制”或“可变复制”(例如, alloc、newObject或mutableCopy),或 如果您向其发送保留消息

使用“释放”或“自动释放”放弃对象的所有权。 自动释放只是意味着“发送释放” “未来的信息”(特别是: 当使用自动释放池时 接收要理解的消息 当出现这种情况时,请参阅“自动释放” 池”)

我强烈建议您明确您的内存管理概念

阅读关于苹果的文章

您不应该释放
NSBundle
NSURL
实例,因为您尚未分配这些实例

苹果文档中的

如果使用的方法是 名称以“alloc”、“new”开头, “复制”或“可变复制”(例如, alloc、newObject或mutableCopy),或 如果您向其发送保留消息

使用“释放”或“自动释放”放弃对象的所有权。 自动释放只是意味着“发送释放” “未来的信息”(特别是: 当使用自动释放池时 接收要理解的消息 当出现这种情况时,请参阅“自动释放” 池”)

我强烈建议您明确您的内存管理概念

阅读关于苹果的文章

@Umair\u uas,你为什么担心记忆力?您是否收到内存警告?NSBundle是单例的,不应该占用太多内存。如果是这样的话,你们就做错了。当我点击仪器“通用块”时,我发现它在设备上有一个巨大的[NSBundle mainBundle]分配。这就是我害怕的原因。我在我的应用程序中点击声音200到400次。声音文件是mp3,长度很小。@Umair\u uas:您不应该担心从框架中获得的对象,在您的情况下,他们NSBundle和NSURL实例建议您通过回答中的链接。@Umair\u uas,您为什么担心内存?您是否收到内存警告?NSBundle是单例的,不应该占用太多内存。如果是这样的话,你们就做错了。当我点击仪器“通用块”时,我发现它在设备上有一个巨大的[NSBundle mainBundle]分配。这就是我害怕的原因。我在我的应用程序中点击声音200到400次。声音文件是mp3,长度很小。@Umair\u uas:您不应该担心从framework获得的对象,在您的情况下,它们是NSBundle和NSURL实例,建议在回答中浏览链接。如果不执行任何错误处理,创建和传递错误对象有什么意义?如果不执行任何错误处理,创建和传递错误对象有什么意义?