lldb 断点,加载了 nib 但没有得到 UITableView

Posted

技术标签:

【中文标题】lldb 断点,加载了 nib 但没有得到 UITableView【英文标题】:lldb breakpoint, loaded nib but didn't get a UITableView 【发布时间】:2013-01-25 15:06:12 【问题描述】:

我有一个没有笔尖的应用程序。它的rootviewcontroller 是一个tableviewcontroller。我让它推送到第二个 tableviewcontroller,它控制一个 detailview。就在本周早些时候,我成功地将它推送到了下一个 tableviewcontroller。几天后(可能保存了错误的版本),

我得到一个

(lldb) 在我选择表项时在 pushViewController 方法处设置断点。我启用了所有异常的断点。如果我再按两次播放按钮,我会在输出框中得到这个:

" ** 由于未捕获的异常 'NSInternalInconsistencyException' 导致应用程序终止,原因:'-[UITableViewController loadView] 加载了 "TopicsDetailViewController" nib 但没有获得 UITableView。'"

这里有什么问题还是我需要在我的项目中寻找其他地方?

这是在我的标题界面中:

    TopicsDetailViewController *tdvController;

: ) 这是我的 didSelectRowAt...

       tdvController = [[TopicsDetailViewController alloc] init];

             tdvController.aFeed = afeed;
    [self.navigationController pushViewController:tdvController animated:YES];
    tdvController = nil;

谢谢,如果我找错树了,请告诉我。

【问题讨论】:

@H2CO3 据我所知,这是一个不同的变量,有一个额外的“c” 谢谢!这让我有一段时间很痒。 抱歉 Valentin,已更新。 然后@h2co3 得到了正确的猜测,这是有道理的,因此你得到了警告。不知道他为什么删除了他的评论。 主要问题仍然存在:当我想加载我的下一个视图控制器时它会中断...... 【参考方案1】:

如果我理解正确的话,你在接口文件中的 tdvController 声明被命名为与你得到异常的实例方法中的 tdvController 相同。

如果您的意图是在此实例方法中创建和使用实例变量,请不要再次声明它,只需:

self.tdvcController = [[TopicsDetailViewController alloc] init];

在堆上创建对象。

如果您打算在此实例方法中使用 TopicsDetailViewController 类型的局部变量而不是 iVar,则将局部变量重命名为其他变量。

【讨论】:

这在上面的评论中得到了回答,所以现在的问题是它为什么会中断并考虑输出消息。

以上是关于lldb 断点,加载了 nib 但没有得到 UITableView的主要内容,如果未能解决你的问题,请参考以下文章

lldb通过c ++ api未解析的断点

lldb 断点命令在 XCode 8 中不起作用

LLDB:添加符号文件?

lldb 脚本 - 断点写出(breakpoint write) 修复

笔尖但没有得到 UITableView

如何在 objc 类的 init 中设置 lldb 断点