这个片段在 Swift 中的等效物是什么



我在 Objective-c 中找到了这段代码,想知道它在 Swift 中的等价物是什么。

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

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

实际上

不需要这些大括号。这是一种编码技术——你可以在这里阅读一篇涉及它的帖子——它使这些开始/做某事/结束块更容易阅读,但代码基本上等同于:

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

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

唯一的区别是大括号在原始代码中定义了一个变量范围,但在这种情况下没有实际区别。

据我所知,Swift 中没有直接等效的结构,它没有这些"匿名块"(即大括号内的代码部分,而不是实际的块)。但是,您可以在另一个问题中找到一些方法的探索。

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

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

最新更新