我想编写一个可以运行两个不同“线程”的应用程序,一个用于客户端的服务器一个。我听说过,在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中引用它。任何关于一般结构的答案以及一些代码示例都将受到高度赞赏:)
答案 0 :(得分:1)
我建议创建一个typedef
,这样您就可以轻松创建该类型的块。像这样:
typedef void (^ServerBlock)(NSString *host, int port);
在你的.h:
ServerBlock myServerBlock;
在你的.m:
myServerBlock = ^(NSString* host, int port) {};
您可以将typedef
放在名为常量的.h文件中,然后将其导入.pch文件(这只是建议......)