2012-10-23 63 views
5

在My Xcode項目中,我已經集成了XMPP框架。它在iOS 5.1模擬器上正常工作。當我試圖在iOS 4.3模擬器我收到以下錯誤運行項目:XMPP不適用於iOS 4.3項目

dyld: lazy symbol binding failed: Symbol not found: _objc_storeStrong 
    Referenced from: /Users/admin/Library/Application Support/iPhone Simulator/4.3.2/Applications/67451DE6-EFC1-4313-9A29-C2C641F727C6/AppName.app/AppName 
    Expected in: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/System/Library/Frameworks/Foundation.framework/Foundation 

dyld: Symbol not found: _objc_storeStrong 
    Referenced from: /Users/admin/Library/Application Support/iPhone Simulator/4.3.2/Applications/67451DE6-EFC1-4313-9A29-C2C641F727C6/AppName.app/AppName 
    Expected in: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/System/Library/Frameworks/Foundation.framework/Foundation 

在下面的代碼行發生錯誤:xmppStream = [[XMPPStream alloc] init];

進一步調試後,我發現這裏出現錯誤:

- (id)init 
{ 
    if ((self = [super init])) //**CRASH WHEN EXECUTING THIS STATEMENT 
    { 
     // Common initialization 
     [self commonInit]; 

     // Initialize socket 
     asyncSocket = [[GCDAsyncSocket alloc] initWithDelegate:self delegateQueue:xmppQueue]; 
    } 
    return self; 
} 


我綜合XMPP該項目不是圓弧。所以我添加了-fobjc-arc針對所有XMPP文件。 XMPP庫提供的示例項目在iOS 4.3模擬器上運行良好。任何人都可以幫我解決這個錯誤?
的Xcode版本:4.3.3
的iOS:的iOS 4.3模擬器

回答

0

如果XMPP需要ARC和您明確地將其關閉這種鏈接錯誤發生。 嘗試從XMPP文件中刪除-fno-objc-arc,並在項目的其他鏈接器標誌中添加-fobjc-arcMore info

+0

對不起,我已經添加了對所有XMPP文件的-fobjc-arc。但問題仍然存在 – Vaquita

+0

但這是一個編譯時間步驟,而不是鏈接時間,對吧?如果我理解正確,那麼您的項目是非ARC,因此ARC庫默認情況下未鏈接。如果你的一些類需要ARC,你需要明確地鏈接它們。 –

相關問題