xcode - 需要调试 Cocoa 绑定(bind)的技巧

标签 xcode cocoa binding xcode4 nib

我在三天内遇到了第二个问题,错误的绑定(bind)导致我花费数小时的时间进行搜索和头痛。

查看堆栈跟踪表明调试存在问题(例如,在运行时开始生成异常之前调用的最后一个方法是bind:toObject:withKeyPath:options:)。但是,我发现无法确定哪个绑定(bind)导致了问题:

  • 堆栈跟踪或变量检查中没有任何内容表明崩溃的调用涉及哪些 View 。

  • 通过单步执行代码可追踪的最后一个非机器指令是对整体函数(awakeFromNib 或 makeKeyAndOrderFront)的调用。

  • 实际异常中的消息很神秘 - 例如,“无法从类 NSScrollView 的对象创建 NSArray”,同时创建一个没有任何 NSScrollView 的窗口(只有两个按钮和两个文本字段)。

那么...有什么调试这些类型问题的技巧吗?例如:

  • 有什么方法可以获取 nib/xib 中指定的所有绑定(bind)的列表吗? (无法做到这一点让我发疯!)

  • 有什么方法可以找出崩溃涉及哪些 View 或控件吗?

  • 有什么方法可以获取有关 awakeFromNib 等整体调用内部发生的情况的更多信息吗?

最佳答案

您可以将 xib 文件作为源代码(不在 IB 中)打开并搜索 “IBBindingConnection” 部分。

示例:贾斯汀的搜索方式(参见评论):

grep -A 18 -B 1 -H -a -n "IBBindingConnection" /PATH/TO/NIB

关于xcode - 需要调试 Cocoa 绑定(bind)的技巧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12019875/

相关文章:

objective-c - 我将如何在 if 语句 OBJ C 中加载新的 View Controller

iphone - 从 youtube 下载视频的应用程序

swift - Cocoa:如何使用 NSDocument 从另一个应用程序更改文件后重新读取文件内容?

java - 编译器对泛型类型的自动绑定(bind)(类型推断)

binding - 使用计算属性和 VueX 的样式绑定(bind)

ios - Google Maps IOS SDK - 刷新 MapView。 ( objective-c )

cocoa - 如何使用 cocoa 编程在 nstextview 中的光标位置插入文本?

objective-c - 您使用过 NSLog 有哪些独特用途?

c# - Silverlight {Binding} 不会访问类成员

ios - 安装cocoa pods,xcode应用项目目录根目录在哪里?