繁体   English   中英

Swift相当于Objective-C表达式?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM