Пользовательские методы класса не распознаются XCode - PullRequest
1 голос
/ 08 апреля 2011

Я написал следующий пользовательский класс:

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

Я импортировал заголовочный файл, класс распознается, но метод - нет.Я что-то не так делаю?

Ответы [ 3 ]

4 голосов
/ 08 апреля 2011

Вам не хватает некоторых вещей из вашего заголовка:

#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 голос
/ 08 апреля 2011

Как говорит Джордан, ваш заголовок неполон.

Однако вы также не хотите импортировать его в файл исходного кода, где вы используете метод.

0 голосов
/ 08 апреля 2011

@ JeremyP Да, я получаю следующее предупреждение: «AKRelativeDates» может не отвечать на « +lativeDateFromDate: in24hFormat: capitalized: », плюс еще одно, что метод не найден,возвращаемый тип по умолчанию равен «id».Завершение кода XCode также не предлагает этот метод

Основываясь на своем ответе, вы, вероятно, используете его следующим образом:

[AKRelativeDates relativeDateFromDate:theDate in24hFormat:theIn24hFormat capitalized:theCapitalized];

Вы обращаетесь к методу из класса, но выобъявил метод как метод экземпляра.@ Джордан указал вам правильный ответ в своем последнем предложении.Я просто пытаюсь быть более конкретным.

Измените - на + в обоих файлах .h и .m, например:

+ (NSString *)relativeDateFromDate:(NSDate *)date in24hFormat:(BOOL)in24hFormat capitalized:(BOOL)capitalized
...