【发布时间】:2012-09-27 14:22:05
【问题描述】:
我在 NSObject 上创建了一个类别,因为我希望我的所有类都继承我编写的 2 个类方法:
@interface NSObject (MyCategory)
+ (MyEnum) getXYZ;
+ (void) setXYZ:(MyEnum)myEnum;
@end
然后我将这个类别导入到我的 PCH 文件中:
#ifdef __OBJC__
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import "NSObject+MyCategory.h"
#endif
然后我在我的一个类中使用了该方法:
[[self class]getXYZ];
并在运行时出现此错误:
+[MyClass getXYZ]: unrecognized selector sent to class 0xd04f4
*** Terminating app due to uncaught exception 'NSInvalidArgumentException',
reason: '+[MyClass getXYZ]: unrecognized selector sent to class 0xd04f4'
我做错了吗? 类别写得好吗? 类方法不是继承的吗? 我应该使用 [super class] 而不是 [self class] 吗? PCH 文件是导入我的类别的地方吗?
谢谢, 努尔
【问题讨论】:
-
你有一个@implementation 文件,对吧?
-
@Stephen Darlington,我确实有一个实现文件,并且在那里声明了方法
-
@nume 使用绿色复选标记将问题的答案标记为已接受的比率。你的只有 25%。
标签: iphone objective-c crash