我有一个简单的应用程序,倒计时到午夜,然后一遍又一遍地发出哔哔声,并闪烁显示时间的标签。因此标签闪烁使用NSTimer,而蜂鸣声在其自己的Thread上,因此纯C函数(对于系统声音id完成回调)可以使用[NSThread sleepForTimeInterval:...];在播放闹钟哔声之间等待一下。因此我在执行期间收到两条错误消息,说没有自动释放池,它只会泄漏。因为在我调用新线程的方法中,有两个@“Strings”用于创建系统声音ID(文件名和扩展名)。有没有办法我不能使用自动释放池,因为这是唯一尝试使用它的两件事。感谢。
或者我应该使用两个NSTimers而不是另一个线程..?
Ben Gottlieb的答案是正确的,但是我决定使用另一个NSTimer,因为我忘记了在你将线程作为代码的实际执行之前没有真正同步到它需要一点时间之前的时间。它使事情对称;)。答案 0 :(得分:2)
只需在线程方法中创建一个自动释放池:
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
...thread body...
[pool release];