ios - Objective-C:NSArray与NSMutableArray的格式

标签 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)"
)

最佳答案

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

在后续注释中,它看起来像是NSArray对象的NSDictionary,因此users valueForKey:将返回字典中的所有ID。如果是这样,则只需使用holderArray将它们添加到addObjectsFromArray中:

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

关于ios - Objective-C:NSArray与NSMutableArray的格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32317123/

相关文章:

ios - cellForItemAtIndexPath , sizeForItemAtIndexPath , insetForSectionAtIndex 没有被调用 iOS

C: 扫描的双数组值为什么变化?

ios - UIImageView UITapGestureRecognizer 不工作

iphone - 如何在 iPhone 应用程序中向用户显示 EULA?

ios - 我的 for ... in 与 addObject 循环中的内存泄漏在哪里

iphone - 如何让多个 View 查看单例的数据?

javascript - 从 JavaScript 中的索引向后遍历数组

javascript - 非等于数组同时更改值javascript

ios - 在 TableView 的自定义单元格中隐藏/显示标签

iOS - 从短视频中提取图片给我相同的图片