用于无参数的静态方法

用于无参数的静态方法

。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/

10-10 09:55