从Dictionary对象中提取数据时遇到问题。字典的计数显示为1,但它显示的一个值为空。我希望在Dictionary对象中没有数据时显示AlertView。我想在计数为'0'时显示AlertView,但它返回'1'。
我正在使用JSON从WebService中提取此字典对象。
{
"My Data" = null;
}
使用此代码将“我的数据”值转换为Dictionary变量Datas。
Datas = (NSDictionary *) [details objectForKey:@"My Data"];
if ([Datas count] == 0) {
//code for showing AlertView....
}
当Dictionary值为null时,请帮我显示UIAlertView。
答案 0 :(得分:38)
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
}
答案 1 :(得分:6)
JSON中的空值通常会被解析为NSNull
。所以这个条件应该检查以及nil:if((details[@"My Data"] == nil) || (details[@"My Data"] == [NSNull null]))
答案 2 :(得分: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];
}