我很困惑在Objective-C项目中找到C风格的语法(例如,下面的语法并不是在本书中Objective-C中定义的方法)。我清楚,这是可行的,因为我编译的代码没有错误 - 但我不知道如何以及为什么,这段代码是普通的Objective-C .h, .m文件。有人可以解释这是如何适应?我们可以用C语言的语法编写Objective-C代码吗?
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
//use of round brackets
void drawLinearGradient(CGContextRef context, CGRect rect, CGColorRef startColor,
CGColorRef endColor);
// C style syntax for passing params
而且这大约是我迄今所看到的核芯显卡的代码非常具体的,是它让编写正Objective-C的方法,这样也还是只能用CG代码文件...?
是否有任何指引或编写代码这是Objective-C和纯C的组合时,经验法则。 (如内存管理,铸造等) – dotnetcoder 2012-03-02 05:14:51
这是否意味着,我可以编写一个Objective-C类,并有一个c-stye方法,它似乎有点奇怪,但是有意义。 – dotnetcoder 2012-03-02 05:18:27
没有超出Objective-C的规则,因为所有Objective-C代码都是这样的“混合”。 Obj-C对象只是普通的指针,可以这样对待。如果您不使用ARC,请注意Obj-C所有权规则(请参阅https://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/MemoryMgmt/Articles/mmRules.html)并使用Obj-C API在适当的情况下,例如,不要在Obj-C对象上调用free(),请使用release方法。 – davehayden 2012-03-02 05:27:34