ARC自动释放,没有游泳池

时间:2012-06-27 13:22:24

标签: iphone xcode automatic-ref-counting

我在代码中使用ARC而我收到了错误

Object 0x781b8e0 of class __NSCFString autoreleased with no pool in place - just leaking - break on objc_autoreleaseNoPool() to debug

它突破的线是

  return UIApplicationMain(argc, argv, nil, NSStringFromClass([HomePageAppDelegate class]));

因为我使用ARC,所以不能像往常一样在它周围加NSAutoReleasePool。我可以使用什么来修复此错误?

3 个答案:

答案 0 :(得分:6)

您使用@autoreleasepool构造:

@autoreleasepool {
    // main code here
}

这会创建一个NSAutoReleasePool,其范围与括号相同,也可以在MRC代码中使用。它具有在发生异常时进行清理的优点,并且可以很容易地用于安全地分派线程。

要了解详情,请访问Transitioning to ARC Release Notes

上的这篇文章

答案 1 :(得分:0)

在显示warning

的行上使用此功能
@autoreleasepool{
}

答案 2 :(得分:0)

创建一个启用了ARC的新测试应用。查看“main.m”中的代码,了解Apple推荐的内容。