。H
#import <Foundation/Foundation.h>
#import "Person.h"
extern NSString *const kRemindersWeekly;
extern NSString *const kRemindersDaily;
@interface Reminders : NSObject
+(void)setRemindersForPerson: (Person*) person;
+(void)setEightDayReminder;
@end
.m
#import "Reminders.h"
@implementation Reminders
NSString *const kRemindersWeekly = @"WEEKLY";
NSString *const kRemindersDaily = @"DAILY";
+ (void) setRemindersForPerson: (Person*) person
{
// some code
}
+(void)setEightDayReminder
{
// some more code
}
@end
当我打电话时:
[Reminders setRemindersForPerson: p];
这总是可以的。当我打电话时:
[Reminders setEightDayReminder];
我得到:
+[Reminders setEightDayReminder]: unrecognized selector sent to class 0xe1b58
另外,
[Reminders setRemindersForPerson:];
会毫无问题地调用[Person setEightDayReminder]
。构建良好并在XCode中单击Command即可显示它。我认为一切正常,因为它可以带我到适当的地方。一定缺少明显的东西吗?拉我的头发。
最佳答案
我有一个非常相似的问题,原因是我有一个类别,而我忘了在@implementation块中指定该类别,从而用“new”有效地覆盖了原始实施。
因此,如果您在类SomeClass上具有类别MyCategory,请确保其实现如下所示:
@interface SomeClass (MyCategory) ...
而不像:
@interface SomeClass ...
关于objective-c - 无法识别的选择器发送给类-用于无参数的静态方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13602982/