• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

iphone - 正确处理 didReceiveMemoryWarning

[复制链接]
菜鸟教程小白 发表于 2022-12-12 20:41:54 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我的一个 UIViewController 有几个 subview Controller 。它们是在界面构建器中构建的,通过将 NSObject 拖到左侧的“对象”部分,然后将我自己的 SpecialViewController 作为“自定义类”放入。有了这个设置,在 viewDidLoad 我将准备好我的 View 和 Controller 。以下屏幕截图建议了工作流程:

Drag "Object" to create instance

在我的实现中,我有:

@interface ParentController : UIViewController
{
     SpecialViewController *svc;
}
@property (nonatomic, retain) IBOutlet SpecialViewController *svc;

据我了解,在 didReceiveMemoryWarning 期间我应该释放自己的资源。然后在 viewDidUnload 期间将 IBOutlets 设置为 nil。

我在模拟器中模拟低内存时崩溃,调试器在 SpecialViewControllerdidReceiveMemoryWarning 处暂停(其主体只是 [super didReceiveMemoryWarning];),错误 EXC_BAD_ACCESS (code=1, address=0xe0000008)。此时父 Controller 是不可见的,因此可以安全释放。

父 Controller 在didReceiveMemoryWarning中也只包含[super didReceiveMemoryWarning];。我在两个类中都尝试了 niling IBOutlets 。它没有帮助。

知道为什么会这样吗?

我的目标是带有 ARC 的 iOS 4 和 5。 SpecialViewControllerUITableViewController 的子类。

通过跟踪,发现ParentController didReceiveMemoryWarningSpecialViewController之前被调用。



Best Answer-推荐答案


您似乎在此处的 View Controller 中有一个 View Controller 。您选择创建这样的类(class)有什么特别的原因吗?根据我的经验,每个 UIViewController 都应该是一个单独的子类。基于 didReceiveMemoryWarning 中出现您的错误这一事实,我认为问题出在其他地方。可以分享一下这个 View Controller 的初始化代码吗?

如果您正在尝试 UIViewController Containment 之类的操作,您可能应该查看涵盖此过程的 WWDC 主题。

关于iphone - 正确处理 didReceiveMemoryWarning,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10429235/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap