目标C:如何继承父类中加载的类别方法?

时间:2013-10-17 16:31:48

标签: ios objective-c inheritance objective-c-category

在我的项目中,我使用的是NSObject+Properties.h类别(请参阅aqtoolkit:https://github.com/AlanQuatermain/aqtoolkit/blob/master/Extensions/NSObject%2BProperties.h

然后我有一个我声明为

的课程
#import <Foundation/Foundation.h>
#import "NSObject+Properties.h"

@interface GFDictionaryInitiable : NSObject
...

然后我有几个GFDictionaryInitiable的子类,例如GFRestaurant

#import <Foundation/Foundation.h>

#import "GFDictionaryInitiable.h"

@interface GFRestaurant : GFDictionaryInitiable
...

我的问题是我无法访问子类中NSObject+Properties类别中定义的方法。例如,我收到错误:

-[GFRestaurant hasPropertyNamed:]: unrecognized selector sent to instance 0x2e57240

如何让我的所有子类'继承'在父类中加载的类别的方法?

2 个答案:

答案 0 :(得分:4)

当你得到运行时异常而不是编译器错误时,我认为你忘记了 向目标添加“NSObject + Properties.m”。选择文件并检查 “文件检查器”中的“目标成员资格”复选框。

答案 1 :(得分:0)

只需添加:

#import "NSObject+Properties.h"

到您的子类.h文件。