我是 iOS 开发的新手,非常感谢您帮助我找出我遇到的错误的根本原因。
我尝试使用 Instruments(即 Allocations-Zombie Profiler)调试错误,但我无法理解所呈现的调用堆栈。
这是用户界面的链接方式: TabBarController -> NavigationController -> TopPlacesTableViewController -> RecentPhotosTableViewController -> PhotoViewController
当我在最后一个 View (即 PhotoViewController 的 View )中单击“后退”按钮时发生错误。此操作本应显示之前的 RecentPhotosTableViewController,但访问了一个未知的已释放对象,有时在 viewWillAppear 和 ViewDidAppear 事件之间。
此外,我还有一个 GenericTableViewController,它是 TopPlacesTableViewController 和 RecentPhotosTableViewController 的父级。子级在父级中设置一个 NSMutableArray 属性,这是在子级 View 中加载的数据。
我目前使用的是 iOS6 和 XCode4.5。
[更新:在控制台中,显示了这一行 - “[UIView _forgetDependentConstraint:]: message sent to deallocated instance xxx”]。
最佳答案
我觉得你没有使用 ARC,并且你没有保留传递你以前的对象。与此同时,先前的对象被释放,然后您可以访问它。
您可以重构代码以使用 ARC 或放置保留或自动释放。
关于objective-c - Objective-C 消息被发送到地址为 : 0x75d52a0 的已释放对象(僵尸),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13739191/