我在三天内遇到了第二个问题,错误的绑定(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/