GCDAsyncUdpSocket不为iOS编译

时间:2012-03-24 13:41:41

标签: objective-c ios udp asyncsocket

我使用此库:https://github.com/robbiehanson/CocoaAsyncSocket

iphone上有TCP的例子,但没有UDP。我认为一切都应该是一样的。这是我的代码:

#import <UIKit/UIKit.h>
@class GCDAsyncUdpSocket;

@interface ThirdViewController : UIViewController
{
    GCDAsyncUdpSocket *udpSocket;
}

的.m:

#import "ThirdViewController.h"
#import "DDLog.h"
#import "DDTTYLogger.h"
#import "GCDAsyncUdpSocket.h"

static const int ddLogLevel = LOG_LEVEL_VERBOSE;

@implementation ThirdViewController

- (void)viewDidLoad
{
    [DDLog addLogger:[DDTTYLogger sharedInstance]];
    udpSocket = [[GCDAsyncUdpSocket alloc] initWithDelegate:self delegateQueue:dispatch_get_main_queue()];
}

但是在编译时我得到了错误:

  

架构i386的未定义符号:“_ OBJC_CLASS _ $ _ DDLog”,

     

引自:   在ThirdViewController.o“_OBJC_CLASS _ $ _ DDTTYLogger”中的objc-class-ref,   引自:   ThirdViewController.o中的objc-class-ref“_OBJC_CLASS _ $ _ GCDAsyncUdpSocket”,   引自:   在ThirdViewController.o中的objc-class-ref ld:在架构i386中找不到符号

有什么问题?编译库中的示例没有错误。

2 个答案:

答案 0 :(得分:2)

您必须链接CFNetwork.framework,或者如果有它,您可以使用自动参考计数器,使用-fno-objc-arc将GCDAsyncUdpSocket从ARC中移除

答案 1 :(得分:0)

(构建阶段&gt;&gt;链接二进制文件库)添加CocoaLumberjack作为可选依赖项。