我使用这个库: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 _ $ _ GCDAsyncUdpSocket”中的objc-class-ref,
引用自:
ThirdViewController.o ld中的objc-class-ref:找不到体系结构i386的符号

怎么了?库中的示例编译无误。

最佳答案

您必须链接CFNetwork.framework,或者如果您正专门在自动参考计数器上工作,请使用-fno-objc-arc来关闭ARC的GCDAsyncUdpSocket ARC

关于objective-c - GCDAsyncUdpSocket无法为iOS编译,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9852213/

10-10 23:25