What is __NSCFArray
in this AFNetworking 2.0 response:
- (void)loadData:(NSMutableArray *) resDic
{
...
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"%@",[responseObject class]); //__NSCFArray
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Failure: %@", error);
}];
[operation start];
}
How can I convert it to NSArray?
It is already an
NSArray
, something you can verify by calling:NSArray is implemented as a class cluster and one of the private subclasses that it might return is
__NSCFArray
.The point of a class cluster is that the framework can provide different implementations under the hood that you don't really have to care about. As far as you should be concerned, it's an NSArray.
NSArray
is a class cluster. This basically means thatNSArray
objects could be made up of one of several different actual implementations and__NSCFArray
is one of the classes (probably the most common) thatNSArray
can use to implement an array.Just use the
__NSCFArray
as you would any otherNSArray
and it'll work fine.