【问题标题】:How to get count of objects in NSArray inside of NSDictionary如何在 NSDictionary 中获取 NSArray 中的对象数
【发布时间】:2013-12-17 03:24:43
【问题描述】:

我需要获取 NSDictionary 中数组中对象的计数。例如:

po _dictionary
{
    keys =     (
        "one",
        "two"
    );
}

考虑到这是一个数组:[_dictionary objectForKey:@"keys"]

我的问题是如何获取数组中的计数?

我试试这个:

[[[_tutorials objectForKey:@"keys"]  allKeys ]count];

但我收到此错误:

* 由于未捕获的异常而终止应用程序 'NSInvalidArgumentException',原因:'-[__NSCFArray allKeys]: 无法识别的选择器发送到实例 0xa419ea0'

【问题讨论】:

  • 这看起来不像 Objective-C...发布您的代码以便我们实际提供帮助。

标签: ios objective-c nsarray nsdictionary


【解决方案1】:

[_dictionary objectForKey:@"keys"]NSArray 而不是 NSDictionary。因此,它不理解allKeys 方法。放下它,它应该可以工作:

[[_dictionary objectForKey:@"keys"] count];

【讨论】:

    【解决方案2】:

    给你:

    NSLog(@"%lu", _dictionary[@"keys"].count);
    

    【讨论】:

      【解决方案3】:

      NSDictionary 有一种方法可以获取 NSArray 的键,我发现它比使用 objectForKey: 更具可读性

      [[_dictionary allKeys] count]
      

      【讨论】:

        【解决方案4】:
        NSLog(@"%d", [[_dictionary objectForKey:@"keys"] count]);
        

        由于您的[_dictionary objectForKey:@"keys"] 是一个数组,您可以直接获取计数。

        【讨论】:

          【解决方案5】:
            NSDictionary *res=[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:&error1];
          
            NSLog(@"%d",[[res valueForKey:@"result"] count]);
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2016-04-13
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-06-29
            • 2011-08-16
            • 2014-09-01
            相关资源
            最近更新 更多