iPhone - kCFStreamNetworkServiceType无法识别?

时间:2011-07-05 12:58:36

标签: iphone objective-c sockets

我目前正在尝试设置iPhone应用程序中其中一个套接字的kCFStreamNetworkServiceType属性。

这是我用过的代码:


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);

然而,这不会为我编译,我得到以下错误:


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

是否有一些重要的或包括我缺少或我必须添加到我的项目的一些框架?对谷歌的搜索没有帮助,所以对这个问题的任何想法都是最受欢迎的。

3 个答案:

答案 0 :(得分:8)

您必须将CFNetwork框架添加到项目中,以便识别其中定义的符号,例如kCFStreamNetworkServiceType

答案 1 :(得分:1)

我搜索了Xcode中的文档。它说这些是CoreServices的一部分,在CFSocketStream.h中定义

答案 2 :(得分:1)

在构建阶段添加CFNetwork框架 - >使用库

链接二进制文件

它会正常工作。