【发布时间】:2009-07-31 14:48:52
【问题描述】:
我要求这样的价值:
[self.layer valueForKeyPath:@"transform.rotation.z"]
bit 我需要将它传递给一个以 CGFloat 作为参数的方法。这里的施法技巧是什么?
【问题讨论】:
我要求这样的价值:
[self.layer valueForKeyPath:@"transform.rotation.z"]
bit 我需要将它传递给一个以 CGFloat 作为参数的方法。这里的施法技巧是什么?
【问题讨论】:
在斯威夫特中:
let f = view.layer.valueForKeyPath("transform.rotation.z")!.floatValue
在 Objective-C 中:
NSNumber* n = [self.layer valueForKeyPath:@"transform.rotation.z"];
CGFloat f = [n floatValue];
【讨论】:
floatValue 是 float,而 CGFloat 在 64 位平台上是 double。
ifdefCGFLOAT_IS_DOUBLE。
如果您想要一种更简洁的单行方式,您可以这样做:
CGFloat f = [[self.layer valueForKeyPath:@"transform.rotation.z"] floatValue];
【讨论】: