Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone ARC自动释放,无池到位_Iphone_Xcode_Automatic Ref Counting - Fatal编程技术网

Iphone ARC自动释放,无池到位

Iphone ARC自动释放,无池到位,iphone,xcode,automatic-ref-counting,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 cl

我在我的代码中使用了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
。我可以使用什么来修复此错误?

在显示
警告的行中使用此选项

@autoreleasepool{
}

在显示
警告的行中使用此选项

@autoreleasepool{
}

您使用
@autoreleasepool
构造:

@autoreleasepool {
    // main code here
}
这将创建一个与括号范围相同的
NSAutoReleasePool
,它也可以在MRC代码中使用。它的优点是在发生异常时被清除,并且可以轻松地用于安全地调度线程


若要阅读更多内容,请访问以下网站上的这篇文章:您使用的是
@autoreleasepool
结构:

@autoreleasepool {
    // main code here
}
这将创建一个与括号范围相同的
NSAutoReleasePool
,它也可以在MRC代码中使用。它的优点是在发生异常时被清除,并且可以轻松地用于安全地调度线程


要阅读更多内容,请访问本文,创建一个启用ARC的新测试应用程序。查看“main.m”中的代码,了解苹果公司的建议。

创建一个启用ARC的新测试应用程序。查看“main.m”中的代码,看看苹果的建议。

考虑到两个答案表明它并不那么复杂,这似乎有点浪费。当有人可以自己找到某个问题的答案时,我宁愿向他们指出这个方向,而不是简单地在他们身上扔一行明显的代码。如果这不符合某些人的填鸭式哲学,那就太难了。:-)问题是,这对未来的游客没有帮助。苹果完全有能力改变他们的模板项目来做一些事情,而不是在发布时创建一个自动释放池,你不能依赖于这一点,它永远不会改变。它不需要永远不变。如果他们(苹果)有一天决定注释的拼写应该不同,这个帖子中的直接建议对于新访问者来说是错误的,但是发现什么可行的方法仍然是有效的。考虑到两个答案表明它并没有那么复杂,似乎有点浪费。当有人能够自己找到某件事的答案时,我宁愿将它们指向那个方向,而不是简单地在它们身上转储一行明显的代码。如果这不符合某些人的填鸭式哲学,那就太难了。:-)问题是,这对未来的游客没有帮助。苹果完全有能力改变他们的模板项目来做一些事情,而不是在发布时创建一个自动释放池,你不能依赖于这一点,它永远不会改变。它不需要永远不变。如果他们(苹果公司)有一天决定注释的拼写应该不同,那么这个线程中的直接建议对于新访问者来说是错误的,但是发现什么有用的方法仍然是有效的。-1因为你没有详细说明它的作用。考虑到OP似乎不是语言大师,引用一些关于你发布的代码的事实或参考文献总是很好的。在这个问题中没有什么需要说明的。我说的答案很简单,就是把声明放在这些行内。如果你不理解,并不意味着每个人都不理解。答案是正确的,不言自明。不要错过每一个导游。关注你的答案,而不是别人的答案wrong@Sumanth-他根本没有误导任何人。我们更喜欢的答案不仅仅是代码转储,而且可以解释您为什么要做某事。在这种情况下,his是目前更好的答案,因为它为您为什么要这样做提供了背景。-1只是因为您没有详细说明它的作用。考虑到OP似乎不是语言大师,引用一些关于你发布的代码的事实或参考文献总是很好的。在这个问题中没有什么需要说明的。我说的答案很简单,就是把声明放在这些行内。如果你不理解,并不意味着每个人都不理解。答案是正确的,不言自明。不要错过每一个导游。关注你的答案,而不是别人的答案wrong@Sumanth-他根本没有误导任何人。我们更喜欢的答案不仅仅是代码转储,而且可以解释您为什么要做某事。在这种情况下,his目前是更好的答案,因为它为您为什么要这样做提供了上下文。