我的团队已决定新文件应该用swift编写,我发现在Objective-C对象中使用KVC在Swift对象上设置属性有一个奇怪的问题.
我的Objective-C设置了这样的属性: [textObject setValue:0.0 forKey:@"fontSize"]
我的Swift对象(textObject)具有此属性的自定义setter/getter.
var fontSize: CGFloat? {
get {
return internalTextGraphic?.fontSize
}
set {
internalTextGraphic?.fontSize = newValue
}
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我在其中设置断点set,它永远不会被击中.
我有Objective-C对象也得到同样的调用,我只是实现
-setFontSize,并执行正确.
为什么我似乎无法进入我的set方法-setValueForKey?我有100%确认textObject存在并且是正确的类型.
编辑:
马丁R是正确的,我不得不使类型不可选.这是我的工作代码:
var fontSize: CGFloat {
get {
var retFontSize: CGFloat = 0.0
if let fontSize = internalTextGraphic?.fontSize {
retFontSize = fontSize
}
return retFontSize
}
set {
if let textGraphic = internalTextGraphic {
textGraphic.fontSize = newValue
}
}
}
Run Code Online (Sandbox Code Playgroud)