9

从 Dictionary 对象中提取数据时出现问题。字典的计数显示为 1,但它显示的一个值为空。当 Dictionary 对象中没有数据时,我想显示一个 AlertView。我想在计数为“0”时显示 AlertView,但它返回“1”。

我正在使用 JSON 从 WebService 中提取此字典对象。

{
     "My Data" = null;
}

使用此代码将“我的数据”值放入字典变量数据中。

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

if ([Datas count] == 0) {

//code for showing AlertView....

}

请帮助我在 Dictionary 值为 null 时显示 UIAlertView ....

4

3 回答 3

41

NSDictionary和其他集合不能包含nil值。当NSDictionary必须存储 a时null,存储一个特殊值[NSNull null]

比较 at 的值@"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 回答