xcode / target-c Вызов методов экземпляра - PullRequest
2 голосов
/ 19 декабря 2011

эта проблема была решена, спасибо за вашу помощь

Поэтому я пытаюсь научить себя xcode для программирования приложений iphone / ipod, написав приложение и посмотрев, что мне нужнознаю, как мне нужно это знать.Этот веб-сайт, вероятно, был самой большой помощью, но на этот раз я не смог найти ответ на свою проблему, возможно, потому, что он слишком прост для тех, у кого есть книга, чтобы спросить.

Я пытаюсьсоздать приложение, которое будет вытягивать десять карт случайным образом из колоды 25. Я создал класс под названием Dealer, в котором есть все карты и массив, который содержит ссылку на каждую из них в качестве данных члена, а также метод, которыйвозвращает карту из массива и удаляет ее.вот мой код для метода

- (NSString *)drawDominion
{
    //some code here

    NSString *current = [dominionDeck objectAtIndex:i];

    //more irrelevant code

    return current;
}

Затем в методе действия для моего View Controller я создал объект моего класса и попытался вызвать drawDominion, но он выдает мне ошибку «Тип получателя« Дилер »для сообщения экземпляране объявляет метод с селектором 'drawDominion'

- (IBAction) Dominion
{
    Dealer *deal = [[Dealer alloc] init];
    NSString *testStr = [deal drawDominion];
}

, вот код, в котором я пытался вызвать drawDominion. Я понятия не имею, что я делаю не так, я только что вчера поднял xcode, и это былотяжелая битва с тех пор. спасибо за любую помощь, которую вы можете предложить.

в ответ на некоторые из ваших ответов: Ну, я не создал Dealer.h, но я вроде как добавил интерфейс для него в существующемviewController.h это может быть причиной моей проблемы? он начинается после @end для класса, который уже определен там, и выглядит так:

@interface Dealer : NSObject

-(NSString *) drawDominion:(NSString**)array;
-(NSString *) drawIntrigue:(NSString**)array;
-(NSString *) drawBoth:(NSString**)array;

@end

также я думаю, я забыл поместить переменные экземпляра в.h но компилятор, похоже, не жалуется на это. Должен ли я их все равно туда вставить?

1 Ответ

1 голос
/ 19 декабря 2011

Вы добавили прототип для метода drawDominion в Dealer.h? Вы должны иметь что-то вроде

@interface Dealer : NSObject {
  // instance variables here
}
-(NSString*)drawDominion;
@end

в автосалоне Затем, когда вы #import "Dealer.h", компилятор знает, что у Dealer будет метод drawDominion.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...