Ios 切换到XCode 7.0(.1)后,自定义视图(XIB)在发布模式下崩溃

Ios 切换到XCode 7.0(.1)后,自定义视图(XIB)在发布模式下崩溃,ios,xcode,swift,uiview,xcode7,Ios,Xcode,Swift,Uiview,Xcode7,我有一个应用程序在XCode 7.0 GM之前运行得非常好。在我用XCode 7.0 GM构建它之后,它开始崩溃。它在加载我的一个自定义视图时崩溃,代码如下: func loadViewWithName(viewName: String, owner: UIView) { let view = NSBundle.mainBundle().loadNibNamed(viewName, owner: owner, options: nil).first as! UIView view

我有一个应用程序在XCode 7.0 GM之前运行得非常好。在我用XCode 7.0 GM构建它之后,它开始崩溃。它在加载我的一个自定义视图时崩溃,代码如下:

func loadViewWithName(viewName: String, owner: UIView) {
    let view = NSBundle.mainBundle().loadNibNamed(viewName, owner: owner, options: nil).first as! UIView
    view.frame = owner.bounds
    owner.addSubview(view)
}

class AddView2 : UIView {
    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)

        loadView()
    }

    @IBOutlet weak var pendingToAddNotification: UIView!

    private func loadView() {
        loadViewWithName("AddView2", owner: self)

        // print("asd") // if this is uncommented the app doesn't crash

        pendingToAddNotification.backgroundColor = UIColor.blackColor() // CRASH HERE, when I try to to change something in the loaded view, most probably because the outlet isn't set (it is nil), which was my assumption since it is called after view is loaded. 
    }
}

class AddView : UIView {
    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)

        loadView()
    }

    @IBOutlet weak var pendingToAddNotification: AddView2!

    private func loadView() {
        loadViewWithName("AddView", owner: self)

        pendingToAddNotification.backgroundColor = UIColor.blackColor()
    }
}
,其中AddView包含AddView2,ViewController包含AddView。我有AddView.xib和AddView2.xib文件,其中文件的所有者分别设置为AddView和AddView2

我认为我做错了什么,但奇怪的是,为什么相同的代码在调试模式下工作,更有趣的是,如果我取消对上面提到的
print
的注释,应用程序不会崩溃并按预期启动

XCode 7.0(.1)中是否有导致此类问题的任何更改? 它看起来像某种竞争条件,由
打印(因为它需要额外的执行时间)或调试模式(因为它比较慢)修复,但据我所知,两个视图的加载都必须在主线程中完成,还是我错了?
非常感谢您的帮助

编辑1:这是全部内容


EDIT2:刚刚发现如果我将
loadView with name
内容复制到
loadView
,它不会崩溃。

我找到了问题的解决方案-使全局函数UIView扩展。我仍然不确定问题出在哪里,也不确定代码为什么不能与全局函数一起工作。

我找到了解决问题的方法-使用全局函数UIView扩展。我仍然不确定问题出在哪里,为什么代码不能与全局函数一起工作。

你有崩溃日志要共享吗?我添加了整个项目,因为它只有几KB,而且会更容易。你有崩溃日志要共享吗?我添加了整个项目,因为它只有几KB,而且会更容易