2011-07-05 5 views
1

J'essaie actuellement de définir la propriété kCFStreamNetworkServiceType de l'une des sockets de mon application iPhone.iPhone - kCFStreamNetworkServiceType non reconnu?

C'est le code que je l'ai utilisé:


CFReadStreamRef sipSocketStream; 

    CFSocketNativeHandle socket = (CFSocketNativeHandle)aSocket; 
    CFStreamCreatePairWithSocket(kCFAllocatorDefault, socket, &sipSocketStream, nil); 
    CFReadStreamSetProperty(sipSocketStream, kCFStreamNetworkServiceType, kCFStreamNetworkServiceTypeVoIP); 
    MyAppDelegate *appdelegate = [[UIApplication sharedApplication] delegate]; 
    NSInputStream *sipStream = (NSInputStream*)sipSocketStream; 
    [sipStream setDelegate:appdelegate]; 
    [sipStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; 
    CFReadStreamOpen(sipSocketStream); 

Cependant, cette compilation habitude pour moi, je reçois les erreurs suivantes:


Undefined symbols for architecture armv6: 
    "_kCFStreamNetworkServiceType", referenced from: 
     VoIPSignallingSocketInit(int) in SocketTools.o 
    "_kCFStreamNetworkServiceTypeVoIP", referenced from: 
     VoIPSignallingSocketInit(int) in SocketTools.o 
ld: symbol(s) not found for architecture armv6 
collect2: ld returned 1 exit status 

Y a-t-il des éléments importants ou inclus ou un cadre que je dois ajouter à mon projet? Une recherche sur Google n'a pas aidé donc toutes les pensées sur la question sont les bienvenues.

+2

Avez-vous ajouté le framework CFNetwork à votre projet? – luvieere

+0

C'était ça, je ne peux pas croire que j'ai raté ça! Si vous voulez ajouter cela comme réponse, je l'indiquerai comme correct. –

+0

Je suis content que cela vous a aidé. Je l'ai ajouté comme réponse. – luvieere

Répondre

8

Vous devez ajouter l'infrastructure CFNetwork à votre projet pour que les symboles définis à l'intérieur, tels que kCFStreamNetworkServiceType, soient reconnus.

1

J'ai recherché les documents dans Xcode. Il dit que ceux-ci font partie de CoreServices, défini dans CFSocketStream.h

1

Ajouter cadre CFNetwork Build phases-> Lien binaire avec les bibliothèques

Il fonctionnera très bien.