此AFNetworking 2.0响应中的__NSCFArray
是什么:
- (void)loadData:(NSMutableArray *) resDic
{
...
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"%@",[responseObject class]); //__NSCFArray
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Failure: %@", error);
}];
[operation start];
}
如何将其转换为NSArray?
答案 0 :(得分:3)
NSArray
是class cluster。这基本上意味着NSArray
个对象可以由几个不同的实际实现之一组成,而__NSCFArray
是NSArray
可用于实现数组的类之一(可能是最常见的)
只需像使用__NSCFArray
那样使用NSArray
,就可以正常使用。
答案 1 :(得分:0)
它已经是NSArray
,你可以通过调用来验证:
BOOL isKindOfArray = [responseObject isKindOfClass:[NSArray class]];
NSArray实现为class cluster,其可能返回的私有子类之一是__NSCFArray
。
类集群的意义在于框架可以提供您不必关心的不同实现。就你应该担心的而言,这是一个NSArray。