【问题标题】:ModalViewController based app crashes after 30 presentations基于 ModalViewController 的应用程序在 30 次演示后崩溃
【发布时间】:2010-10-10 19:31:14
【问题描述】:

我有一个 ipad 应用程序,其中包含类别(其中包含 tableviewcontrollers)和具有 webview 的详细视图,显示 tableview 上的行信息。

关于类别表视图的 didSelectRowAtIndexPath 函数,我使用的代码如下:

DetayViewController *dvc = [[DetayViewController alloc] init];
Blog *b = (Blog *)[self.blogArray objectAtIndex:indexPath.row];
dvc.cagirilanBlog = b;
[self presentModalViewController:dvc animated:YES];

这很好用。但是在使用应用程序时,如果您在表格视图中单击行并打开一个详细信息页面并关闭它大约 30 次,应用程序就会崩溃并退出。

应用崩溃时我收到的警告如下:

**Received memory warning. Level=1**

**Received memory warning. Level=2**

**Program received signal:  “0”.
Data Formatters temporarily unavailable, will re-try after a 'continue'. (Unknown error loading shared library "/Developer/usr/lib/libXcodeDebuggerSupport.dylib")**

当我关闭模态视图控制器时,我将释放我在详细视图中使用的所有对象。但我无法解决的问题是它为什么会崩溃?那是一个错误吗?我不能使用 presentModalViewController 超过 30 次吗?

请帮帮我。

谢谢。

【问题讨论】:

    标签: iphone objective-c ipad memory-management modalviewcontroller


    【解决方案1】:

    你需要释放你使用过的资源(每个内存分配都需要释放)。

    在你的情况下:

    [dvc release]
    

    (如果没有,你在dealloc方法中释放的所有对象都不会被调用!)

    您还可以使用 Xcode 提供的泄漏性能工具。 (对于检测内存泄漏非常有用)

    你应该阅读这份文件:http://developer.apple.com/library/ios/#documentation/cocoa/Conceptual/MemoryMgmt/MemoryMgmt.html

    【讨论】:

    • 这样做:DetayViewController *dvc = [[[DetayViewController alloc] init] autorelease];
    • 亲爱的威廉,当我使用此代码时:[dvc release];在创建 DetayViewController 时,当我关闭 modalviewcontroller 时,应用程序由于 -dealloc 方法而崩溃。例如它说:[DetayViewController urlReq]:message sent to deallocated instance 0x62c39d0 after this,我试图清理我的 dealloc 方法并且不手动释放对象,但即使在这种情况下,应用程序意外崩溃并给出此错误:-[ DetayViewController respondsToSelector:]: 消息发送到已释放实例 0x62ca070,我无法理解。我没有使用“respondsToSelector”之类的方法 :(
    • 不,不要按照@William 在第一条评论中所说的去做。在运行[self presentModalViewController:dvc animated:YES]; 之后,改为写[dvc release];。如果不是绝对必要,切勿使用autorelease
    • 是的,release 必须在 presentModalViewController 之后。抱歉,自动释放不起作用。
    猜你喜欢
    • 1970-01-01
    • 2013-03-30
    • 1970-01-01
    • 2019-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多