通过调度队列在2个块中运行服务器和客户端

时间:2012-11-14 08:44:38

标签: objective-c ios xcode

我想编写一个可以运行两个不同“线程”的应用程序,一个用于客户端的服务器一个。我听说过,在Objective-C Dispatch Queues和Blocks中是可行的方法。我已经在相当大的范围内阅读了关于块和调度队列的Apple文档,但是在编码的最初阶段我仍然失败。

我是对的,我需要创建2个块,一个用于我的服务器代码,一个用于我的客户端代码,然后将这些块放在调度队列中以便同时运行?

我现在正试图为我的服务器创建一个块,并且失败了。我尝试了以下方法:

#import <Foundation/Foundation.h>

@interface Server : NSObject {
    void (^server)(NSString*, int);
}

@end

然后

 #import "Server.h"

@implementation Server
   server = ^(NSString* host, int port) {
};

@end

我以为我必须首先在头文件中声明块变量,以便稍后我可以在我的ViewController中引用它。任何关于一般结构的答案以及一些代码示例都将受到高度赞赏:)

1 个答案:

答案 0 :(得分:1)

我建议创建一个typedef,这样您就可以轻松创建该类型的块。像这样:

typedef void (^ServerBlock)(NSString *host, int port);

在你的.h:

ServerBlock myServerBlock;

在你的.m:

myServerBlock = ^(NSString* host, int port) {};

您可以将typedef放在名为常量的.h文件中,然后将其导入.pch文件(这只是建议......)