如何在块中使用自定义类型的参数

时间:2012-10-19 12:17:28

标签: objective-c ios xcode objective-c-blocks

我为JSON服务定义了一个回调块,如下所示:

#import "JSONResult.h"
typedef void (^JSONResultHandler)(JSONResult*);

显然,JSONResult类型参数是一个自定义类型,其头文件包含在定义此块的位置。为什么我会收到以下错误?

/Users/oyvind/code/_objc/JSONService.h:22:35: Unknown type name 'JSONResult'

2 个答案:

答案 0 :(得分:3)

您是否也在JSONResult导入JSON服务类?也许你有一个循环引用问题。

如果要在JSONResult中导入JSON服务类并且导入是绝对必要的,请尝试使用前向声明在.h中导入JSONResult:

@class JSONResult;

@interface SomeJSONService : NSObject

typedef void (^JSONResultHandler)(JSONResult*);

@end

仔细检查您的导入和类名是否正常。

答案 1 :(得分:0)

检查您是否在JSONResult.h中正确导入了JSONService.h标头:

#import "JSONResult.h"