关于Xcode在控制台输入指令po后输出异常的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于Xcode在控制台输入指令po后输出异常的问题相关的知识,希望对你有一定的参考价值。

参考技术A 最近公司新来了个小伙伴儿,来了之后没几天出现了标题所说的问题具体看图

可以看到,有些时候是好的有些时候使用po命令却出现异常,疯狂的查stackoverflow
,看到了类似的控制台报错问题,说是自己的方法名称和定义的宏出现了冲突,于是我根据这些错误信息,是我的第三方库masonry的东西,于是猜测是新来的小伙伴在项目里面修改pch文件了,于是看了下,查到了他加的两个宏

//define this constant if you want to use Masonry without the 'mas_' prefix

#define MAS_SHORTHAND

//define this constant if you want to enable auto-boxing for default syntax

#define MAS_SHORTHAND_GLOBALS

自己搜了下两个宏的意思,对应的意思是这样的

//1. 对于约束参数可以省去"mas_"#define MAS_SHORTHAND

//2. 对于默认的约束参数自动装箱#define MAS_SHORTHAND_GLOBALS

果断注释掉了第一个又去项目里面改了下他以前省去的mas_,解决了po不出对象(dic)或者数组的情况。

所以大家以后若是碰到类似的报错,都可以按这个思路去查下,问题是会解决的。

Xcode 在控制台输出中关闭与自动布局相关的警告

【中文标题】Xcode 在控制台输出中关闭与自动布局相关的警告【英文标题】:Xcode turn off auto layout related warning in console outputs 【发布时间】:2014-02-13 08:53:07 【问题描述】:

Xcode 对无法满足的自动布局约束显示冗长的警告。因此很难从控制台中找到其他异常。有什么办法可以在 Xcode 中禁用自动布局相关的警告?

【问题讨论】:

这个问题你找到答案了吗? 不,找不到答案 真的还是没有答案吗?? 这个问题急需回答 Disable autolayout constraint error messages in debug console output in Xcode的可能重复 【参考方案1】:

斯威夫特 4:

UserDefaults.standard.set(false, forKey: "_UIConstraintBasedLayoutLogUnsatisfiable")

【讨论】:

【参考方案2】:
[[NSUserDefaults standardUserDefaults] setValue:@(NO) forKey:@"_UIConstraintBasedLayoutLogUnsatisfiable"];

在 appdelegate 中添加此代码。这将从控制台隐藏约束错误消息

【讨论】:

【参考方案3】:

如果您以编程方式创建UIView,则没有定义任何布局约束。您必须手动添加它们。如果您确实为某个视图配置了一些 layoutconstraints,则可以像这样删除它们:

[view removeConstraints:view.constraints]

【讨论】:

这并不能真正回答问题。现在很多人都使用自动布局,没有约束不是一种选择。

以上是关于关于Xcode在控制台输入指令po后输出异常的问题的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 5 不打印异常详细信息

iOS开发之Xcode常用调试技巧总结

Xcode异常解释

Xcode 12 beta 1:po 在调试器中不起作用

Xcode 4.2/iOS 5 下控制台中没有异常堆栈跟踪?

UI 测试 xCode 7.3 - 无法在控制台中打印变量(即“po app”):(无法构建 Objective-C 模块“Bolts”)