这段代码给了我错误Cannot find interface declaration for 'OGWView'
:
typedef SKNode OGWView;
@interface OGWView (Category)
@end
为什么?类别不应该与 typedef 名称一样好用吗?
PS:我知道我可以用#define(或使用原始类名)来解决这个问题,但我真的更想了解为什么不能在 typedef 类上创建类别。
这段代码给了我错误Cannot find interface declaration for 'OGWView'
:
typedef SKNode OGWView;
@interface OGWView (Category)
@end
为什么?类别不应该与 typedef 名称一样好用吗?
PS:我知道我可以用#define(或使用原始类名)来解决这个问题,但我真的更想了解为什么不能在 typedef 类上创建类别。
我相信这个问题的答案是你有两种不同的符号。我相信 typedef 是一个对象,您正试图将其用作类符号。
根据声明的顺序,您会收到不同的警告提示:
typedef NSObject Foo;
@class Foo;
产量:
忽略对象类型的 typedef 名称的前向类“Foo”的重新定义
@class Foo;
typedef NSObject Foo;
产量:
将“Foo”重新定义为不同类型的符号
替换typedef
为@compatibility_alias
@compatibility_alias SKNode OGWView;