从NSMutableArray中取出对象

ash*_*ish 0 cocoa objective-c nsmutablearray ios

我有一个数组,其中包含一些可能相同但有些不同的对象.
如何分别取出每个相同的对象和不同的对象?

下面是数组

NSMutableArray *items = [[NSMutableArray alloc]
 initWithArray:[NSArray arrayWithObjects:@"rat", @"rat", @"cat",@"Lion", @"cat", @"dog", @"dog", nil]];
Run Code Online (Sandbox Code Playgroud)

我想要有四个包含这些项目的数组:

  • 第一个阵列有两只老鼠
  • 第二阵列有两只猫
  • 第三阵列有一头狮子
  • 第四阵列有两只狗

将物体拿出来的最佳方法是什么?相同的对象应放在同一个数组中.

Abi*_*ern 6

这是一般答案:

将数组放入NSCountedSet中 - 它将存储每个对象以及添加它的次数.

然后 - 对于此计数集中的每个对象,创建一个数组,该对象根据每个对象的计数重复.

它将适用于您的情况,因为您使用的是静态字符串,如果它们是相同的字符串,它们将是相同的.如果您使用自定义对象,这将需要更多工作.

但我们要问的真正问题是为什么你需要创建这些重复的结构.如果我们能够知道你在做什么,我们可以为你提供更好的建议.例如,如果您只需要保持每种类型对象数量的运行计数,您可以直接使用NSCountedSet(它来自NSMutableSet,因此它已经是可变的)并且不需要创建数组.