typedef类的ObjC类:“找不到'typedefname'的接口声明”

时间:2013-10-24 15:39:50

标签: objective-c typedef objective-c-category

此代码为我提供了错误Cannot find interface declaration for 'OGWView'

typedef SKNode OGWView;

@interface OGWView (Category)
@end

为什么呢?该类别不应该与typedef名称一样好用吗?

PS:我知道我可以使用#define(或者使用原始类名)解决这个问题,但我真的更感兴趣的是理解为什么不能在typedef类上创建类别。

2 个答案:

答案 0 :(得分:2)

我相信这个问题的答案是你有两种不同的符号。我相信typedef是一个对象,你试图将它用作类符号。

取决于声明的顺序,你会得到不同的警告:

typedef NSObject Foo;
@class Foo;

的产率:

  

忽略对象类型的typedef名称的前向类'Foo'的重新定义

@class Foo;
typedef NSObject Foo;

的产率:

  

将'Foo'重新定义为不同类型的符号

答案 1 :(得分:1)

typedef替换为@compatibility_alias

@compatibility_alias SKNode OGWView;

我在实验时发现了这个