iphone - 正确处理 didReceiveMemoryWarning
<p><p>我的一个 <code>UIViewController</code> 有几个 subviewController 。它们是在界面构建器中构建的,通过将 <code>NSObject</code> 拖到左侧的“对象”部分,然后将我自己的 <code>SpecialViewController</code> 作为“自定义类”放入。有了这个设置,在 <code>viewDidLoad</code> 我将准备好我的 View 和 Controller 。以下屏幕截图建议了工作流程:</p>
<p> <img src="/image/pfc7v.png" alt="Drag "Object" to create instance"/> </p>
<p>在我的实现中,我有:</p>
<pre><code>@interface ParentController : UIViewController
{
SpecialViewController *svc;
}
@property (nonatomic, retain) IBOutlet SpecialViewController *svc;
</code></pre>
<p>据我了解,在 <code>didReceiveMemoryWarning</code> 期间我应该释放自己的资源。然后在 <code>viewDidUnload</code> 期间将 <code>IBOutlets</code> 设置为 nil。</p>
<p>我在模拟器中模拟低内存时崩溃,调试器在 <code>SpecialViewController</code> 的 <code>didReceiveMemoryWarning</code> 处暂停(其主体只是 <code>;</code>),错误 <code>EXC_BAD_ACCESS (code=1, address=0xe0000008)</code>。此时父 Controller 是不可见的,因此可以安全释放。</p>
<p>父 Controller 在<code>didReceiveMemoryWarning</code>中也只包含<code>;</code>。我在两个类中都尝试了 niling <code>IBOutlets</code> 。它没有帮助。</p>
<p>知道为什么会这样吗?</p>
<p>我的目标是带有 ARC 的 iOS 4 和 5。 <code>SpecialViewController</code> 是 <code>UITableViewController</code> 的子类。</p>
<p>通过跟踪,发现<code>ParentController didReceiveMemoryWarning</code>在<code>SpecialViewController</code>之前被调用。</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>您似乎在此处的 ViewController 中有一个 ViewController 。您选择创建这样的类(class)有什么特别的原因吗?根据我的经验,每个 UIViewController 都应该是一个单独的子类。基于 <code>didReceiveMemoryWarning</code> 中出现您的错误这一事实,我认为问题出在其他地方。可以分享一下这个 View Controller 的初始化代码吗?</p>
<p>如果您正在尝试 UIViewController Containment 之类的操作,您可能应该查看涵盖此过程的 WWDC 主题。</p></p>
<p style="font-size: 20px;">关于iphone - 正确处理 didReceiveMemoryWarning,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/10429235/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/10429235/
</a>
</p>
页:
[1]