2012-01-12 104 views
2

我需要做一些圖形在我的iPad應用程序繪製,所以我跟着這個教程:使用LLVM GCC 4.2不讓我_bridge一個CFStringRef成一個NSString

http://recycled-parts.blogspot.com/2011/07/setting-up-coreplot-in-xcode-4.html

在我必須將我的C/C++/Objective-C編譯器更改爲LLVM GCC 4.2。 (最初是Apple LLVM Compiler 3.0)。

現在,我無法將_bridge將CFStringRef轉換爲NSString。我收到以下錯誤:

'_bridge' undeclared (first use in a function) 

任何人都可以幫我解決這個問題嗎?謝謝。

+2

您是否嘗試過使用'__bridge'與2'_'? – kennytm 2012-01-12 10:42:52

+0

我現在就來試試吧。感謝KennyTM。 – theDuncs 2012-01-12 11:55:46

+0

肯尼 - 原來賈斯廷的回答是正確的(但是你發現錯字是正確的)。謝謝你的幫助。 – theDuncs 2012-01-12 14:51:24

回答

2

CocoaFu發現一個問題。

另一個問題是自從2011年夏天支持ARC以來,GCC + LLVM不支持僅支持ARC的Clang版本。橋接鑄造補充ARC。

如果您需要GCC,您需要爲程序添加手動引用計數,或者您可以將事物移動到單獨的文件中,以查看ARC/MRC差異。或者你可以使用你的依賴庫的早期版本,如果它們是需要ARC的。或...(更多選項)

+1

謝謝賈斯汀。你達人。我現在已經刪除了0.9版本的CorePlot(不支持ARC),並使用了它的最新代碼版本。非常感謝。 – theDuncs 2012-01-12 14:53:14

+0

@鄧肯不客氣 – justin 2012-01-12 19:37:27

3

關鍵字__bridge有兩個主要的下劃線。

猜測你的代碼這可能是類似於你想要的東西:

CFStringRef cf = CFSTR("test"); 
NSString *ns = (__bridge_transfer NSString *)cf; 

(它被賦予常量字符串一個頭腦簡單的例子)

+0

CocoaFu - 你說得對,我犯了一個錯字,需要雙下劃線。這就是說,賈斯汀的答案正確地回答了這個問題。儘管感謝您的幫助。非常感激。 – theDuncs 2012-01-12 14:52:24

相關問題