2011-08-15 25 views
4

我在一個大型項目中看到Objective-C塊存在一些奇怪的行爲。每當有一個Block屬性定義爲拷貝時,應用程序稍後嘗試引用該屬性時會發生崩潰。重寫setter實現從@synthesize的實現並顯式調用Block_copy()可以做到這一點,但有趣的是,如果在另一個項目上下文中使用相同的代碼,則屬性將按預期工作。Objective-C塊屬性定義爲複製不起作用

這必須是某種項目設置或依賴項問題。任何人都遇到過這種事情?

+0

請包括一個最小的再現案例。 –

+0

也許與此問題相關:http://stackoverflow.com/questions/7111541/exc-bad-access-when-copying-or-retaining-block – 2011-09-11 21:43:59

回答

2

謝謝你Bavarious。根本問題是鏈接到應用程序的libSystem庫。

的解決方法是從目標的鏈接器標記刪除「-weak_library /usr/lib/libSystem.B.dylib」「-weak-l系統」更換。