所以.. CALayer
KVC“扩展”处理所有怪人的......比如......
+ (id) defaultValueForKey: (NSString*)key {
return [key isEqualToString:@"borderColor"]
? (id)cgPINK
: [super defaultValueForKey:key]; }
如果您不提供值, Apple 的文档会提到如何最好地对结构进行编码,当它们引用默认值时......
例如,如果 key 的值是 CGSize 结构,则该方法返回一个包含 (0.0,0.0) 的大小结构,该结构包含在 NSValue 对象中。
但是,我不知道如何提供正常的、臭的、原始的,即CGFloat
我试过@VAL
-typeNSNumber
编码,
return ![key isEqualToString:@"lineWidth"] ?: @3;
并且没有可行NSValue
的方法,甚至拼命尝试将它们投向id
return ![key isEqualToString:@"zPosition"] ?: (id)262453;
// lol
这是怎么回事?由于 CALayer 的奇数性质,这只是“哦,你不能”的情况吗?我尴尬地忽略了一个明显的解决方案?或者它只是一个阴暗的 API - 拒绝记录它自己的缺点?