此函数因运行时错误而失败:
-[UIWindow viewForFirstBaselineLayout]: unrecognized selector sent to instance 0x7fb9dae257d0
有人遇到过同样的问题吗?
UPD:
在模拟器iOS 8.1 / 8.4上失败。 9.3工作正常。
UPD2:
UIWindow
创建如下:
window = UIWindow(frame: UIScreen.mainScreen().bounds)
window?.rootViewController = RootViewController.rootVC
window?.makeKeyAndVisible()
答案 0 :(得分:21)
看起来Xcode 7.3使用viewForFirstBaselineLayout
属性来绘制UI。但是,自iOS 9.0起,此属性已标记为可用。
[UIView viewForFirstBaselineLayout]
方法。似乎苹果公司的人不考虑这种情况。
答案 1 :(得分:21)
我通过在我的项目中放置以下修复程序让视图调试器再次工作:
load
当您的项目加载时,viewForFirstBaselineLayout
方法将执行,导致viewForLastBaselineLayout
和viewForBaselineLayout
使用#ifdef DEBUG
实现(如果它们当前未实现),因此查看调试获取iOS8风味它正在寻找的行为。
要将此项添加到您自己的项目中,请在项目中创建一个新的空Objective-C文件并粘贴内容。您可以根据需要为其命名。我称之为“UIView + FixViewDebugging”。如果您处于纯Swift项目中,则不需要创建桥接标头。该文件将被编译到您的项目中,您无需参考它。
请注意,这仅适用于调试版本,因为DEBUG=1
。您可以删除它,但之后您可能会意外地将其编译到您的发布版本中(尽管它应该没有不良副作用)。如果此方法无法使用这些行,请检查您的目标在构建设置>中是否有ln(x^sqrt(2))-x^3+4
。 Apple LLVM - 预处理>预处理器宏>调试。
答案 2 :(得分:0)
是。当单击调试视图层次结构按钮时,页面没有任何内容,并打印" [UIWindow viewForFirstBaselineLayout]:无法识别的选择器发送到实例0x7fb9dae257d0"
要解决这个问题,请确保您使用的iOS系统不在iOS 9.0之下,您仍然可以自由使用该功能。