我有如下代码:
1.我有以下方法作为一个按钮的操作。
(IBAction)enableDisableFB:(id)sender {//have below local variable
NSMutableDictionary *fbLocationLatitude = [[NSMutableDictionary alloc] init];
2.有一个循环,我在这个字典中设置对象,比如
[fbLocationLatitude setObject:latitude forKey:locID]; //here latitude and locID both are NSString
3.在同一方法的另一个循环中,我试图检索值,但它在 NSLog 中给出(null)
NSLog(@"latitude for key %@ = %@",locID, [fbLocationLatitude objectForKey:locID]);
//above statement gives me output -> latitude for key 114943251851302 = (null)
但是在循环之后我打印完整的字典使用
NSLog(@"location dictionary = %@",fbLocationLatitude);
//which gives me below output. Sample given
location dictionary = {
114943251851302 = "40.4414";
109782595706984 = "38.9966";
108867759137051 = "22.47";
110148382341970 = "25.7877";
107611279261754 = "43.1655";
111803735513513 = "27.1828";
109155699106505 = "18.3167";
103734539665100 = "19.09";
这具有我正在搜索的键的值,但同样我无法使用 objectForKey。请帮我解决这个问题。
for (NSUInteger i =0; i< [fbLocationID count];i++)
{
// NSLog(@"person creation");
NSString *locID = [NSString stringWithString:[fbLocationID objectAtIndex:i]];
NSLog(@"latitude for key %@ = %@",locID, [fbLocationLatitude objectForKey:locID]);
}
NSLog(@"location dictionary = %@",fbLocationLatitude);
代码就是这样。我还尝试使用以下代码打印键类
for (id ik in [fbLocationLatitude allKeys])
{
const char* classname=class_getName([ik class]);
NSLog(@"class of key %s",classname);
}
我得到的答案是:键类 NSDecimalNumber 虽然将 locID 类型转换为 NSDecimalNumber,但我没有得到键的确切值,而只有 null。请帮助解决这个问题。