0

基本的に、私は次のifステートメントを持っています:

NSString *loginResult = [resultsArray valueForKey:@"statusMsg"];
if ([loginResult isEqualToString:@"success"])
{
    [self successDialog]; // Success
}
else 
{
    [self failedDialog]; // Failed
}

成功した場合、これは解析されたJSONです。

{"results":{"statusMsg":"success"}}

失敗した場合、解析されたJSONは次のように変化します。

{"results":{"statusMsg":"password incorrect."}}

キーstatusMsgによって返された文字列値をfailedDialogメソッド内のアラートビューに渡したい。failedDialogメソッドは次のように定義されます。

- (void)failedDialog:(NSString *)errorMessage
{
    UIAlertView *dialog = [[UIAlertView alloc] initWithTitle:kRegFailed
                                                     message:errorMessage
                                                    delegate:self
                                           cancelButtonTitle:kOK
                                           otherButtonTitles:nil, nil];
    dialog.tag = 2;
    [dialog show];  
}

アラートビューにエラーメッセージが返されるようにするにはどうすればよいですか。TIA!

4

2 に答える 2

1

編集

NSDictionary *jsonDictionary = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];

NSString *loginResult = [[jsonDictionary objectForKey:@"results"] objectForKey:@"statusMsg"];
if ([loginResult isEqualToString:@"success"])
{
    [self successDialog]; // Success
}
else 
{
    [self failedDialog:loginResult]; // Failed
}
于 2012-09-24T06:33:23.197 に答える
1

resultsArray が NSArray オブジェクトの場合、なぜこれを行うのだろうか

NSString *loginResult = [resultsArray valueForKey:@"statusMsg"];

これをヘッダーファイルに入れます

- (void)failedDialog:(NSString *)errorMessage;

これを試してみてください。jsonDict = { "results" :{ "statusMsg" : "パスワードが正しくありません。" } }

[self failedDialog:[NSString stringWithString:[[jsonDict objectForKey:@"results"]objectForKey:@"statusMsg"]]];
于 2012-09-24T06:29:40.470 に答える