2012-03-05 46 views
1

我在使用ARC時將CFDataRef轉換爲NSData時遇到問題。我正在使用__bridge_transfer或__bridge轉換,但它不起作用。任何人都可以建議我採用其他方式來鑄造這兩種類型。 我收到以下錯誤CFDataRef到NSData

「自動引用計數的問題:不兼容的類型鑄造 'CFDataRef *'(又名 'const的結構__CFData **')以 'NSData的*' 與__bridge投」

回答

6
NSData *my_nsdata = (__bridge_transfer NSData*)my_cfdata; // -1 on the my_cfdata 

NSData *my_nsdata = (__bridge NSData*)my_cfdata; // no adjustment of retain counts. 

從我的博客張貼在這裏:

http://amattn.com/2011/12/07/arc_best_practices.html

+0

我不知道爲什麼,但我仍然得到這個錯誤。自動引用計數問題:不兼容的類型鑄造'CFDataRef *'(又名'const struct __CFData **')到'NSData *'用__bridge鑄造 – 2012-03-07 15:13:15

+0

張貼您正在使用的代碼的確切線... – amattn 2012-03-07 15:16:28

+0

ahhh,我終於得到答案。正如我得到的錯誤清楚,我正在使用CFDataRef *代替CFDataRef.Changed,現在它正在工作 – 2012-03-08 18:14:11