我在NSMutableDictionary检索Key和Value检查时有点混淆,因为我做了这段代码。
NSMutableDictionary *testDictionary=[NSMutableDictionary dictionary];
// NSMutableDictionary *testDictionary=[[NSMutableDictionary alloc]init];
[testDictionary setObject:@"Muhammed Musthafa" forKey:@"10005"];
[testDictionary setObject:@"Lubaba p" forKey:@"10006"];
[testDictionary setObject:@"Sahala Banu" forKey:@"10007"];
[testDictionary setObject:@"Vishnu k" forKey:@"10008"];
[testDictionary setObject:@"Shabeer PP" forKey:@"10009"];
[testDictionary setObject:@"Sabeehath " forKey:@"10010"];
[testDictionary setObject:@"Anusha GS" forKey:@"10011"];
[testDictionary setObject:@"JINI KS" forKey:@"10012"];
[testDictionary setObject:@"Athulya T" forKey:@"10013"];
[testDictionary setObject:@"Midhun KS" forKey:@"10014"];
for(NSString *kk in testDictionary)
{
NSString *fName;
if(kk==@"10006")
{
fName=[testDictionary objectForKey:kk];
}
if(kk==@"10007")
{
fName=[testDictionary objectForKey:kk];
}
if(kk==@"10013")
{
fName=[testDictionary objectForKey:kk];
}
NSLog(@"KEY=====%@ and Value====%@",kk,fName);
}
The out put value :
2011-11-17 10:49:37.054 ArchiveData[2539:207] KEY=====10013 and Value====
2011-11-17 10:49:37.055 ArchiveData[2539:207] KEY=====10006 and Value====
2011-11-17 10:49:37.056 ArchiveData[2539:207] KEY=====10008 and Value====
2011-11-17 10:49:37.056 ArchiveData[2539:207] KEY=====10010 and Value====
2011-11-17 10:49:37.057 ArchiveData[2539:207] KEY=====10012 and Value====
2011-11-17 10:49:37.057 ArchiveData[2539:207] KEY=====10014 and Value====
2011-11-17 10:49:37.058 ArchiveData[2539:207] KEY=====10005 and Value====
2011-11-17 10:49:37.059 ArchiveData[2539:207] KEY=====10007 and Value====
2011-11-17 10:49:37.060 ArchiveData[2539:207] KEY=====10009 and Value====
2011-11-17 10:49:37.061 ArchiveData[2539:207] KEY=====10011 and Value====
为什么这三个{(kk == @“10006”)if(kk == @“10007”)if(kk == @“10013”)} if state return false?
还有其他方法可以像这样检查id键吗?
我看到相同类型的编码在其他编码中运行良好,所以这取决于其他任何配置吗?
如何检查特定键== @“某些键值”?
答案 0 :(得分:1)
使用[kk isEqualToString:@"10006"]
比较字符串可能会更好,以便进行正确的字符串比较而不是指针比较。
答案 1 :(得分:0)
代码:
NSMutableDictionary *testDictionary=[NSMutableDictionary dictionary];
// NSMutableDictionary *testDictionary=[[NSMutableDictionary alloc]init];
[testDictionary setObject:@"Muhammed Musthafa" forKey:@"10005"];
[testDictionary setObject:@"Lubaba p" forKey:@"10006"];
[testDictionary setObject:@"Sahala Banu" forKey:@"10007"];
[testDictionary setObject:@"Vishnu k" forKey:@"10008"];
[testDictionary setObject:@"Shabeer PP" forKey:@"10009"];
[testDictionary setObject:@"Sabeehath " forKey:@"10010"];
[testDictionary setObject:@"Anusha GS" forKey:@"10011"];
[testDictionary setObject:@"JINI KS" forKey:@"10012"];
[testDictionary setObject:@"Athulya T" forKey:@"10013"];
[testDictionary setObject:@"Midhun KS" forKey:@"10014"];
for(NSString *kk in testDictionary)
{
NSString *fName;
if([kk isEqualToString:@"10006"])
{
fName=[testDictionary objectForKey:kk];
}
if([kk isEqualToString: @"10007"])
{
fName=[testDictionary objectForKey:kk];
}
if([kk isEqualToString:@"10013"])
{
fName=[testDictionary objectForKey:kk];
}
NSLog(@"KEY=====%@ and Value====%@",kk,fName);
}
输出您的代码。
2011-11-17 12:47:59.910 test[12512:a0f] KEY=====10008 and Value====(null)
2011-11-17 12:47:59.910 test[12512:a0f] KEY=====10010 and Value====(null)
2011-11-17 12:47:59.911 test[12512:a0f] KEY=====10012 and Value====(null)
2011-11-17 12:47:59.911 test[12512:a0f] KEY=====10014 and Value====(null)
2011-11-17 12:47:59.912 test[12512:a0f] KEY=====10005 and Value====(null)
2011-11-17 12:47:59.912 test[12512:a0f] KEY=====10007 and Value====Sahala Banu
2011-11-17 12:47:59.912 test[12512:a0f] KEY=====10009 and Value====Sahala Banu
2011-11-17 12:47:59.913 test[12512:a0f] KEY=====10011 and Value====Sahala Banu
2011-11-17 12:47:59.913 test[12512:a0f] KEY=====10013 and Value====Athulya T
2011-11-17 12:47:59.913 test[12512:a0f] KEY=====10006 and Value====Lubaba p
它工作正常。
在10007之后,你没有10009和10011的条件。所以fName值没有改变。