1

我想编写一个可以运行两个不同“线程”的应用程序,一个用于服务器,一个用于客户端。我听说,Objective-C 调度队列和块是要走的路。我已经阅读了有关 Blocks and Dispatch Queues 的 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 中引用它。任何关于带有一些代码示例的一般结构的答案将不胜感激:)

4

1 回答 1

1

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

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

在您的 .h 上:

ServerBlock myServerBlock;

在您的 .m 上:

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

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

于 2012-11-14T08:49:46.523 回答