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];
我正在使用 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];