我使用此库: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中找不到符号
有什么问题?编译库中的示例没有错误。
答案 0 :(得分:2)
您必须链接CFNetwork.framework,或者如果有它,您可以使用自动参考计数器,使用-fno-objc-arc将GCDAsyncUdpSocket从ARC中移除
答案 1 :(得分:0)
(构建阶段&gt;&gt;链接二进制文件库)添加CocoaLumberjack作为可选依赖项。