【发布时间】:2015-03-26 21:11:08
【问题描述】:
在 Swift 中,我通过子类化 UIView 创建了一个自定义视图:
@IBDesignable class HandView: UIView {
var view:UIView!
var settings:AppSettings?
@IBOutlet weak var c1ImageView: UIImageView!
@IBInspectable var c1Image:UIImage? { didSet { self.c1ImageView?.image = self.c1Image } }
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
//self.settings = AppSettings.sharedInstance
self.xibSetup()
}
}
当我将此视图添加到我的故事板时,实时渲染按预期工作。一旦我取消注释该行:
//self.settings = AppSettings.sharedInstance
实时渲染崩溃 - 我收到以下错误消息:
error: IB Designables: Failed to render instance of BetView: Rendering the view took
error: IB Designables: Failed to render instance of HandView: The designables agent
crashed
应用程序按应有的方式编译和运行。唯一受影响的是实时渲染。 AppSettings 类是一个单例:
class AppSettings {
//This makes AppSettings a singleton
class var sharedInstance: AppSettings {
struct Static {
static let instance: AppSettings = AppSettings()
}
return Static.instance
}
private let settings = NSUserDefaults.standardUserDefaults()
init () {
//Load default values from the plist file
let settingsBundleURL = NSBundle.mainBundle().pathForResource("Defaults", ofType: "plist")
let settingsDefaults = NSDictionary (contentsOfFile: settingsBundleURL!)
self.settings.registerDefaults(settingsDefaults!)
}
我不确定它为什么会窒息或该怎么办。我不想停止使用实时渲染,因为它对开发我的项目非常有用。
【问题讨论】: