NSDictionary 具有空值
Posted
技术标签:
【中文标题】NSDictionary 具有空值【英文标题】:NSDictionary having null value 【发布时间】:2013-03-04 10:57:33 【问题描述】:从 Dictionary 对象中提取数据时遇到问题。字典的计数显示为 1,但它显示的一个值为空。当 Dictionary 对象中没有数据时,我想显示一个 AlertView。我想在计数为“0”时显示 AlertView,但它返回“1”。
我正在使用 JSON 从 WebService 中提取此字典对象。
"My Data" = null;
使用此代码将“我的数据”值放入字典变量 Datas。
Datas = (NSDictionary *) [details objectForKey:@"My Data"];
if ([Datas count] == 0)
//code for showing AlertView....
请帮助我在 Dictionary 值为 null 时显示 UIAlertView....
【问题讨论】:
输入NSLog
以获取详细信息和日期...检查它返回的内容...
嗨 Kalyan,你能提供更多代码吗?我不明白你想达到什么目的......
+1 至少尝试了一些东西...为什么诚实的问题总是被否决
【参考方案1】:
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
【讨论】:
【参考方案2】:JSON 中的 null 值通常被解析为 NSNull
。所以这个条件应该检查那个以及 nil:if((details[@"My Data"] == nil) || (details[@"My Data"] == [NSNull null]))
【讨论】:
【参考方案3】: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];
【讨论】:
现在,对吗?? @PratyushaTerli 我只是写了一个给出一些想法的答案,所以请跳过这一点,但是谢谢 :) 为什么要测试 isEqUal:NULL?如果这是真的,它将评估为假并且不适用于 nsnull @CarlVeazey 现在是对的吗?并且没有时间从服务器我们也得到字符串中的 null 值,所以只需将其转换为字符串,它就会工作,所以我只需定义上面的代码,现在它是正确的......你说什么?? @CarlVeazey 现在是正确和正确的,首先我从 api 写了 NULL bcoz 一段时间,服务器可能会直接返回那种类型的值,所以..如果现在正确,那就给我投票吧..以上是关于NSDictionary 具有空值的主要内容,如果未能解决你的问题,请参考以下文章
从 NSDictionary 转换为 [String:Any?]
将 Plist (NSString) 解析为 NSDictionary