如何解决如何查看字典数据?
| @ \“ noresult \”此处的“ 0”是一个字典对象,它由3个键/值对组成,实际上,该字典对象中的数据是从服务调用中动态获取的。它由3个字符串组成,每个字符串都包含\“ noresult \”之类的数据或\\“ www.gmail.com \”之类的url,所以我的要求是,如果我在第一个字符串中获得了url,则不应检查其余2个字符串。因此,如果我没有在第一个字符串中获得url,则必须检查第二个字符串,如果我在第二个字符串中获得了url,则无需检查第三个字符串,如果前两个字符串是\“ noresult \”,那么我必须检查第三个字符串。 我正在编写如下代码,即使我在第一个字符串中获取了url,该代码也会检查其他2个字符串,因此,如果我得到了数据,请问如何编写逻辑以免检查第二和第三反之亦然for (id key in favData.searchDict) {
NSLog(@\"objects inside favData.searchDict is %@\",[favData.searchDict objectForKey:key]);
NSRange match = [[favData.searchDict objectForKey:key] rangeOfString:@\"noresult\"];
if(match.location == NSNotFound) {
req=[NSURLRequest requestWithURL:[NSURL URLWithString:[NSString stringWithString:[favData.searchDict objectForKey:key]]]];
[[[featuredAsset viewControler]iWebview]loadRequest:req];
}
}
解决方法
for (id key in favData.searchDict) {
NSLog(@\"objects inside favData.searchDict is %@\",[favData.searchDict objectForKey:key]);
NSRange match = [[favData.searchDict objectForKey:key] rangeOfString:kNoResult];
BOOL flag;
if (flag != YES) {
if(match.location == NSNotFound)
{
req=[NSURLRequest requestWithURL:[NSURL URLWithString:[NSString stringWithString:[favData.searchDict objectForKey:key]]]];
[[[featuredAsset viewControler]iWebview]loadRequest:req];
flag = YES;
}
}
}
我想它将解决您的问题......
, 满足条件时,只需break
循环即可:
for (id key in favData.searchDict) {
NSRange match = [[favData.searchDict objectForKey:key] rangeOfString:kNoResult];
if (match.location == NSNotFound) {
req=[NSURLRequest requestWithURL:[NSURL URLWithString:[NSString stringWithString:[favData.searchDict objectForKey:key]]]];
[[[featuredAsset viewControler]iWebview]loadRequest:req];
break; /* execution will continue ... */
}
}
/* ...here */
, 对于更现代的方法,请使用基于块的NSDictionary方法
- (void)enumerateKeysAndObjectsUsingBlock:(void (^)(id key,id obj,BOOL *stop))block
您可以在块内设置set6ѭ以停止进一步的枚举。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。