这段代码中Swift的等价物是什么?

时间:2015-03-11 07:43:47

标签: objective-c swift

我在Objective-c中找到了这个代码,并想知道它在Swift中的等价物。

CGContextSaveGState(context)
{
    CGContextMoveToPoint(context, self.bounds.size.width, yOffset);
    CGContextAddLineToPoint(context, self.bounds.size.width, yOffset);
    CGContextStrokePath(context);
}
CGContextRestoreGState(context);

这里困扰我的是两个大括号{}

2 个答案:

答案 0 :(得分:1)

这些牙箍没有实际需要。这是一种编码技术 - you can read a post that touches on it here - 使得这些开始/做某事/结束块更容易阅读,但代码基本上等同于:

CGContextSaveGState(context)
CGContextMoveToPoint(context, self.bounds.size.width, yOffset);
CGContextAddLineToPoint(context, self.bounds.size.width, yOffset);
CGContextStrokePath(context);
CGContextRestoreGState(context);

......没有牙套。 (并且该代码在Swift中与在Objective C中完全相同。)

唯一的区别是the braces define a variable scope in your original code,但在这种情况下没有实际区别。

据我所知,Swift中没有直接等效的结构,它没有这些"匿名块" (即大括号内的代码部分,而不是实际的Blocks。)但是,您可以找到some explorations of ways of doing it in this other question

答案 1 :(得分:-1)

代码实际上是一样的。
请查看Apple的文档以获取进一步的参考:

https://developer.apple.com/library/ios/documentation/GraphicsImaging/Reference/CGContext/