Цель C - Получить класс для возврата значения - PullRequest
1 голос
/ 07 марта 2011

Я редко задаю вопросы, но это расстраивает меня, потому что я нигде не могу найти ответ!

Мне просто нужно вызвать функцию в GameChallenges.m и вернуть значение в контроллер представления. GameChallenges.m будет вызываться разными контроллерами представления, поэтому он отдельный. Пожалуйста, помогите!

У меня есть отдельный файл класса с именем GameChallenges.

В нем есть функция / метод: в .ч

@class StatsViewController;

@interface GameChallenges : NSObject {


    StatsViewController* statsController;
    NSString* challengeTitle;
}

@property (nonatomic, retain) IBOutlet StatsViewController* statsController;
@property (assign) NSString* challengeTitle;

-(NSString*)checkChallenge:(int)challegeID;

@end

в .м

#import "GameChallenges.h"
#import "StatsViewController.h"

@implementation GameChallenges
@synthesize challengeTitle,statsController;

-(NSString*)checkChallenge:(int)challegeID{
    if(challegeID==1){
        self.challengeTitle = @"Some Text.";
        return challengeTitle;
    }else if(challegeID==2){
        self.challengeTitle = @"Some Other Text.";
        return challengeTitle;
    }
}

Из контроллера представления под названием StatsViewController я вызываю этот метод

в .ч

@class GameChallenges;

@interface StatsViewController : UIViewController {

        UILabel* challengeIDDescText;
}


@property (nonatomic, retain) IBOutlet UILabel* challengeIDDescText;

@property (nonatomic, retain) IBOutlet GameChallenges* challenges;

@end

в .м

[challenges checkChallenge:tempString];
challengeIDDescText.text = challenges.challengeTitle;

Ответы [ 2 ]

1 голос
/ 07 марта 2011

Ваш код довольно странный, я бы сказал, что это именно то, что происходит:

-[GameChallenges checkChallenge], кажется, ожидает int, и вы вызываете его с переменной tempString, которая, я думаю, являетсяNSString *.Скорее всего, ваш метод заканчивается без назначения challengeTitle и без действительного значения return.Исправьте это, указав return nil в качестве последнего утверждения и передав int.

. Этот тип проблем очень легко решить с помощью отладчика.

Также посмотрите примеры Apple.

0 голосов
/ 07 марта 2011

Я новичок в объективе-C, однако код в GameChallenges.m выглядит странно для меня ... Разве это не было бы лучше?

challengeIDDescText.text = [challenges checkChallenge:challengeId];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...