2012-04-12 66 views
3

我想TwitPic與文字在微博使用GSTwitPicEngine類,它使用YAJLiOS圖像後相互排斥,「分配」和「弱」是

所以我在我的項目中添加YAJLiOS框架,我得到這個('assign'和'weak'是互斥的)錯誤在YAJLiOS框架中的文件「YAJLParser.h」中。 在以下啉

@property (assign, nonatomic) __weak id <YAJLParserDelegate> delegate; 

當我刪除它成爲蘋果Mach-O的接頭(Id)的錯誤的__weak表示錯誤。

請幫助。如何處理這種有點錯誤。我沒有得到理由。

+1

不應該將'__weak'關鍵字應用於類的實例變量,而不是getter/setter參數類型? – trojanfoe 2012-04-12 11:14:12

+0

我不這麼認爲。 – 2012-04-12 12:00:47

回答

0

正如你可能已經知道,分配是不一樣的東西...在功能上它們非常接近,但弱是更爲複雜和相當巧妙的NULL出處置對象以避免崩潰引用(其中包括保留週期)。

無論 - 做什麼?我最好的猜測是嘗試拔出ARC的向後兼容性傳統修復程序...替換_ _unsafe_unretained並看看如何。

1

我傻......

嘗試

@property (unsafe_unretained, nonatomic) id <YAJLParserDelegate> delegate; 
+0

感謝您的回覆..但它給unsafe_unretained錯誤 - 錯誤 - (Apple Mach-O鏈接器(Id)錯誤。)「_OBJC_CLASS _ $ _ OARequestHeader」,引用自:objc-class-ref in GSTwitPicEngine.o – 2012-04-30 05:40:32

1

也許你想通了現在, 反正這裏是我如何擺脫這種錯誤的:

@property (assign) __unsafe_unretained id<YAJLParserDelegate> delegate; 

確保.h代碼中的所有其他delegate聲明(如果有)均爲__unsafe_unretained eg在@private部分:

__unsafe_unretained id<YAJLParserDelegate> delegate;