我在Objective-c中找到了这个代码,并想知道它在Swift中的等价物。
CGContextSaveGState(context)
{
CGContextMoveToPoint(context, self.bounds.size.width, yOffset);
CGContextAddLineToPoint(context, self.bounds.size.width, yOffset);
CGContextStrokePath(context);
}
CGContextRestoreGState(context);
这里困扰我的是两个大括号{}
答案 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/