failed to update auto layout status: the agent crashed within Xcode7

场景:
  原先的项目使用的是swift1.2+storyboard,下载了Xcode7 GM版本,打开项目之后,首先提示的是各种语法修改,按照提示,将语法修改完之后,程序编译运行一切OK。
  点击storyboard,结果环境给出了这种的错误提示(可正常编译运行),入下图所示:
错误截图
ZLAttributedPlaceHolderTextField实现如下:

import UIKit

@IBDesignable
class ZLAttributedPlaceHolderTextField: UITextField {

     @IBInspectable var placeHolderColor : UIColor = UIColor(white: 0.7, alpha: 1.0) {
        didSet {
            updateAttributedPlaceHolder()
        }
    }

     @IBInspectable var placeHolderFontSize : CGFloat = 14 {
        didSet {
            updateAttributedPlaceHolder()
        }
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    }

    func updateAttributedPlaceHolder() {
        if self.placeholder != nil {
            var attributes = [String : AnyObject]()
            attributes[NSForegroundColorAttributeName] = self.placeHolderColor
            attributes[NSFontAttributeName] = UIFont.systemFontOfSize(self.placeHolderFontSize)
            self.attributedPlaceholder = NSAttributedString(string: self.placeholder!, attributes: attributes)
        }
    }
}

主要是想在storyboard里面就可以自由设置attributedPlaceholder属性,而不需要再在代码里去实现。
按照错误提示,一开始是以为约束的问题,但是,检查了一下,约束并没有任何问题,随后发现如下图有这个提示:
错误提示
点击DEBUG,直接断在如下所示:
调试日志
不知所以然,根据图2的提示性信息,Designables Crashed,将代码里的

@IBDesignable

注释掉,OK,没有任何问题

个人理解:
该类自定义keyPath属性,内部又调用了其它方法,导致系统无法顺利执行并进行渲染。而对于一些简单的属性,例如如下的内容:

@IBDesignable
extension UIView {

    @IBInspectable var cornerRadius : CGFloat {
        set {
            self.layer.cornerRadius = newValue
        }
        get {
            return self.layer.cornerRadius
        }
    }

    @IBInspectable var borderWidth : CGFloat {
        set {
            self.layer.borderWidth = newValue
        }
        get {
            return self.layer.borderWidth
        }
    }

    @IBInspectable var borderColor : UIColor {
        set {
            print("\(newValue)", terminator: "")
            self.layer.borderColor = newValue.CGColor
        }
        get {
            return UIColor(CGColor: self.layer.borderColor!)
        }
    }
}

就不会出现上面的那种错误信息。

@IBDesignable无伤大雅,有没有,感觉都无所谓

或许个人理解有误,欢迎拍砖。至于网上说的那些

  1. Runpath Search Paths 添加$(CONFIGURATION_BUILD_DIR)
  2. 删除 DerivedData
  3. Clean Project Cmd + K
  4. 重启Xcode
    等等方法,都尝试了,然并卵
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值