[英]Swift equivalent of Objective-C expression?
以下表达式在Swift中的含义是什么:
[wordmarkFrameAnimation addKeyFrames:@[
({
IFTTTAnimationKeyFrame *keyFrame = [IFTTTAnimationKeyFrame keyFrameWithTime:timeForPage(1) andFrame:CGRectOffset(self.wordmark.frame, 200, 0)];
keyFrame.easingFunction = IFTTTEasingFunctionEaseInQuart;
keyFrame;
}),
]];
我知道外部是一个数组( @[...]
)但是以({
和以})
结尾})
是什么意思?
与Swift不同,Objective-C - 因为它是C - 可以使用简单的花括号在任何地方创建局部范围。 此外,通过C语言的GCC扩展,当花括号本身被圆括号包围时,此范围可用于生成值 - 即花括号中的最后一个表达式。 因此,这是一种定义,配置和返回keyFrame
内联的方法。
因此,要在Swift术语中理解它的含义,请将其视为与此类事物大致相同,这实际上是一种相当常见的Swift习惯用法(我称之为定义和调用 ):
let arr : [UIView] = [
{
let v = UIView(frame:CGRectMake(0,0,100,100))
v.opaque = true
v.backgroundColor = UIColor.redColor()
return v
}()
]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.