2012-10-23 16 views
5

W projekcie My Xcode miałem zintegrowaną strukturę XMPP. Działa dobrze na symulatorze iOS 5.1. Kiedy próbowałem uruchomić projekt na symulatorze iOS 4.3 otrzymuję następujący błąd:XMPP nie działa w projekcie 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 

błąd wystąpił na następnej linii kodu: xmppStream = [[XMPPStream alloc] init];

Po dalszym debugowania odkryłem, że błąd pojawia się tutaj :

- (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; 
} 


Projekt I zintegrowany XMPP nie jest ARC. Dlatego dodałem -fobjc-arc przeciwko wszystkim plikom XMPP. Przykładowy projekt podany przez bibliotekę XMPP działa poprawnie na symulatorze iOS 4.3. Czy ktoś może mi pomóc w rozwiązaniu tego błędu?
Xcode wersja: 4.3.3
iOS: iOS 4.3 Simulator

Odpowiedz

0

Jeśli XMPP wymaga ARC i zwraca go wyraźnie od tego rodzaju zdarzyć błędy łącznikowe. Spróbuj usunąć -fno-objc-arc z plików XMPP i dodać -fobjc-arc w swoich innych flagach linku do projektu. More info

+0

Przepraszamy, dodałem już -fobjc-arc do wszystkich plików XMPP. Ale problem nadal występuje – Vaquita

+0

Ale to jest czas kompilacji, a nie czas łącza, prawda ?. Jeśli dobrze rozumiem, twój projekt nie jest ARC, więc biblioteki ARC nie są domyślnie połączone. Jeśli niektóre z twoich klas wymagają ARC, musisz jawnie połączyć się z nimi. –

Powiązane problemy