我写了以下自定义类:
AKRelativeDates.h
#import <Foundation/Foundation.h>
#import "NSDate-Utilities.h"
@interface AKRelativeDates
- (NSString *)relativeDateFromDate:(NSDate *)date in24hFormat:(BOOL)in24hFormat capitalized:(BOOL)capitalized;
@end
AKRelativeDates.m
#import "AKRelativeDates.h"
@implementation AKRelativeDates
- (NSString *)relativeDateFromDate:(NSDate *)date in24hFormat:(BOOL)in24hFormat capitalized:(BOOL)capitalized
{
// method implementation removed
return @"test";
}
@end
我已经导入了头文件,该类被识别,但方法不是。我做错了吗?
答案 0 :(得分:4)
你遗漏了标题中的一些内容:
#import <Foundation/Foundation.h>
#import "NSDate-Utilities.h"
@interface AKRelativeDates : NSObject //Follow the class name with the superclass.
{
//Now enclose any class objects if any - if none then brackets are optional
}
//And now time for the method declarations:
- (NSString *)relativeDateFromDate:(NSDate *)date in24hFormat:(BOOL)in24hFormat capitalized:(BOOL)capitalized;
@end
另外,如果它是一个类方法(即你不想在使用这个方法之前创建对象),那么用'+'替换' - '
答案 1 :(得分:1)
正如乔丹所说,你的标题不完整。
但是,您也不会将其导入到使用该方法的源代码文件中。
答案 2 :(得分:0)
@JeremyP是的,我收到以下警告:'AKRelativeDates'可能无法响应' + relativeDateFromDate:in24hFormat:capitalized:',再加上另一个,找不到该方法,返回类型默认为'id'。 Xcode代码完成不建议使用此方法
根据你的回复,你可能会这样使用它:
[AKRelativeDates relativeDateFromDate:theDate in24hFormat:theIn24hFormat capitalized:theCapitalized];
您正在从类访问该方法,但您将该方法声明为实例方法。 @Jordan在他的最后一句话中指出了正确的答案。我只是想更加具体。
将.h和.m文件中的 - 更改为+,如下所示:
+ (NSString *)relativeDateFromDate:(NSDate *)date in24hFormat:(BOOL)in24hFormat capitalized:(BOOL)capitalized