Ios Cocoa-在NSDictionary中引用密钥
我想引用ket,而不是NSDictionary上包含的内容,如下所示:Ios Cocoa-在NSDictionary中引用密钥,ios,json,cocoa,key,nsdictionary,Ios,Json,Cocoa,Key,Nsdictionary,我想引用ket,而不是NSDictionary上包含的内容,如下所示: key { 14819 = { contactDetails = { dictionary = { interests = { Movies = ... if([key isEqualToString:@"1
key {
14819 = {
contactDetails = {
dictionary = {
interests = {
Movies =
...
if([key isEqualToString:@"14819"]){
do something
}
NSArray*keys=[dict allKeys];
for(NSString *key in keys) {
if ([key compare@"14819"] == NSOrderedSame) {
do something
}
}
我想做这样的东西:
key {
14819 = {
contactDetails = {
dictionary = {
interests = {
Movies =
...
if([key isEqualToString:@"14819"]){
do something
}
NSArray*keys=[dict allKeys];
for(NSString *key in keys) {
if ([key compare@"14819"] == NSOrderedSame) {
do something
}
}
您能帮助我吗?您可以使用nsdictionary中的allkeys方法获取密钥数组,然后迭代它进行比较!像这样:
key {
14819 = {
contactDetails = {
dictionary = {
interests = {
Movies =
...
if([key isEqualToString:@"14819"]){
do something
}
NSArray*keys=[dict allKeys];
for(NSString *key in keys) {
if ([key compare@"14819"] == NSOrderedSame) {
do something
}
}
您可以使用nsdictionary中的allkeys方法获取密钥数组,然后迭代它进行比较!像这样:
key {
14819 = {
contactDetails = {
dictionary = {
interests = {
Movies =
...
if([key isEqualToString:@"14819"]){
do something
}
NSArray*keys=[dict allKeys];
for(NSString *key in keys) {
if ([key compare@"14819"] == NSOrderedSame) {
do something
}
}
应该能用所有的钥匙查到。写了一个简单的例子,希望对大家有所帮助
NSMutableDictionary *testDictionary = [[NSMutableDictionary alloc]init];
[testDictionary setObject:@"value" forKey:@"testObject"];
BOOL containsKey = [[testDictionary allKeys] containsObject:@"testObject"];
NSLog(@"testing %d" ,containsKey);
应该能用所有的钥匙查到。写了一个简单的例子,希望对大家有所帮助
NSMutableDictionary *testDictionary = [[NSMutableDictionary alloc]init];
[testDictionary setObject:@"value" forKey:@"testObject"];
BOOL containsKey = [[testDictionary allKeys] containsObject:@"testObject"];
NSLog(@"testing %d" ,containsKey);
如果您只想测试该键是否存在于字典中,请使用
objectForKey:
并测试该对象是否为nil
获取
所有密钥
并在其中搜索密钥将起作用,但几乎肯定要慢一些。字典是散列表objectForKey:
使用该事实,而allKeys
不使用该事实。如果您只想测试该键是否存在于字典中,请使用objectForKey:
并测试该对象是否为nil
获取
所有密钥
并在其中搜索密钥将起作用,但几乎肯定要慢一些。字典是散列表objectForKey:
使用该事实,而allKeys
不使用该事实。或者您可以向数组发送containsObject:
消息(请参见AJak的答案)。或者您可以向数组发送containsObject:
消息(请参见AJak的答案)。NSDictionarys的另一个问题是,它来自json响应服务,有时一些字段可能等于,应用程序就会崩溃@法比奥桑托斯:“场”是什么意思?如果字典中存在密钥,并且对象描述为“
”,则这是一个NSNull对象,您可以对此进行测试。NSDictionarys的另一个问题是,它来自json响应服务,有时一些字段可能等于,应用程序会崩溃@法比奥桑托斯:“场”是什么意思?如果该键存在于字典中,且对象描述为“
”,则该对象为NSNull对象,您可以对此进行测试。