Objective-C: NSArray 与 NSMutableArray 的格式

Objective-C: Format of NSArray vs NSMutable Array

我正在使用 Quickblox API 创建群聊,这需要使用以下格式将 UserID 发送到方法:

NSArray *usersIDs = @[@(55), @(678), @(22)];

这个数组这样输出到日志:

Correct Format: (
        55,
        678,
        22
)

在我的应用中,我将用户 ID 数组填充到 NSMutableArray,如下所示:

[holderArray addObject:[users valueForKey:@"ID"]]

像这样输出到日志(当我发送到方法时,它不起作用):

My Array: (
        (
        55
    ),
        (
        678
    ), (
        22
    ),
)

谁能解释一下我在 holderArray 上做错了什么,以及我如何才能以正确的格式添加对象?

编辑:

这是用户 NSArray 的日志输出:

users: (
    "
  [QBUUser]:
  ID:55
  created at:2015-08-27 19:33:24 +0000
  updated at:2015-08-27 19:33:24 +0000
  externalUserID:0
  blobID:0
  facebookID:(null)
  twitterID:(null)
  full name:(null)
  email:(null)
  login:3065555555
  phone:(null)
  tags:(null)
  lastRequestAt:2015-08-29 22:49:34 +0000
  customData:(null)
  website:(null)"
)

传递 NSMutableArray 并没有错,因为它是 NSArray 的子类,问题在于任何 [users valueForKey:@"ID"] returns,看起来就像 NSArray 本身。

从后续评论看来它是 NSDictionary 个对象的 NSArray,因此 users valueForKey: 将 return 词典中的所有 ID。如果这是真的,那么只需使用 addObjectsFromArray:

将它们添加到 holderArray
NSArray *idents = [users valueForKey:@"ID"];
[holderArray addObjectsFromArray:idents];