0

私はこれに慣れていないので、初心者の間違いかもしれません。問題は、メソッドにメッセージを送信しても接続されないことです。

呼び出し方法は次のとおりです。

-(BOOL) login:(LoginInfo *) info{

NSString *url = [NSString stringWithFormat:@"%@/%@?name=%@&password=%@", FAMORABLE_API_URL,FAMORABLE_API_ACTION_LOGIN, info.username, info.password];

NSDictionary* json =  [self getJson:url];
NSString *token = [json objectForKey:@"Token"]; 

NSLog(@"results: %@", token);

LoginInfo *loginResult = [LoginInfo alloc];
loginResult.token = token;
//TODO
NSLog(@"test 1 %@", loginResult.token);
    [clientService saveLoginInfo:loginResult];

return YES;

}

最後の行の上の行では、このファイルにインポートされた ClientService.h で宣言されている clientService の saveLoginInfo に送信していることがわかります。

-(void) saveLoginInfo:(LoginInfo *)info{
NSLog(@"test 2 %@", info);
NSLog(@"test 3%@", info.token);
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];


[defaults setObject:info.token forKey:KEY_TOKEN];
NSString *string = [defaults stringForKey:KEY_TOKEN];
NSLog(@"test 4%@", string);
// save it
[defaults synchronize];


if (!(info.token)){
    self.currentUser = nil;
    self.isLoggedOn=false;
}else{
    self.currentUser = info;
    self.isLoggedOn=true;
}    
}

これが呼び出されるメソッドです。ほとんどの場合、1つ間違った場合の安全策として、たくさんのログを出しましたが、どれも実行されていません...

何が間違っているのか、何か考えはありますか?

前もってありがとうトム

4

1 に答える 1

0

あなたのクラスのインスタンス変数clientServiceは行にありますか?[clientService saveLoginInfo:loginResult];

その場合は、呼び出す前にオブジェクトをどこかでインスタンス化していることを確認してください。(クラスのinitメソッド内、または場合によってviewDidLoadUIViewController.)

例えば

- (void)viewDidLoad {
    [super viewDidLoad];
    clientService = [[MyClientService alloc] init];
}

- (id)init {
    self = [super init];
    if (self) {
        clientService = [[MyClientService alloc] init];
    }
    return self;
}

dealloc(メソッド内のインスタンスも必ず解放してください。

于 2012-07-19T07:51:05.290 に答える