Objective-C:NSArray与NSMutable数组的格式

时间:2015-08-31 17:57:52

标签: ios objective-c arrays nsmutablearray nsarray

我使用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)"
)

1 个答案:

答案 0 :(得分:3)

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

从后续评论来看,它似乎是NSArrayNSDictionary个对象,因此users valueForKey:将返回字典中的所有ID。如果这是真的,那么只需使用holderArray将其添加到addObjectsFromArray

NSArray *idents = [users valueForKey:@"ID"];
[holderArray addObjectsFromArray:idents];