我很困惑在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