9

Dictionary オブジェクトからデータを抽出するときに問題が発生しました。ディクショナリのカウントは 1 と表示されていますが、表示されている 1 つの値は null です。Dictionary オブジェクトにデータがない場合に AlertView を表示したい。カウントが「0」のときに AlertView を表示しようと思ったのですが、「1」を返します。

JSON を使用して WebService からこのディクショナリ オブジェクトを抽出しています。

{
     "My Data" = null;
}

このコードを使用して、「My Data」値をディクショナリ変数 Datas に取得しました。

Datas = (NSDictionary *) [details objectForKey:@"My Data"];

if ([Datas count] == 0) {

//code for showing AlertView....

}

ディクショナリの値がnullの場合にUIAlertViewを表示するのを手伝ってください....

4

3 に答える 3

41

NSDictionaryおよびその他のコレクションにnil値を含めることはできません。NSDictionaryを格納する必要があるnull場合、特別な値[NSNull null]が格納されます。

@"My Data"の値を比較して[NSNull null]、対応する値が であるかどうかを判断しますnull

// Since [NSNull null] is a singleton, you can use == instead of isEqual
if ([details objectForKey:@"My Data"] == [NSNull null]) {
    // Display the alert
}
于 2013-03-04T11:08:17.827 に答える
6

通常、JSON の null 値は に解析されNSNullます。したがって、この条件はそれと nil をチェックする必要があります。if((details[@"My Data"] == nil) || (details[@"My Data"] == [NSNull null]))

于 2013-03-04T11:10:09.027 に答える
5
if ([[details objectForKey:@"My Data"] isEqual:[NSNull null]] || [[details objectForKey:@"My Data"] isEqualToString:@""]) {
     UIAlertView *altTemp = [UIAlertView alloc]initWithTitle:@"Value Null" message:@"Your Message" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
     [altTemp show];
     [altTemp release];
}
于 2013-03-04T11:01:39.640 に答える