我在AFNetworking getPath调用的成功块中有以下内容:
+(void)allItemsWithBlock: (void (^)(NSArray *items)) block
{
...
NSMutableArray *mutableItems = [NSMutableArray array];
for (NSDictionary *attributes in [responseObject valueForKey:@"data"]) {
Item *item = [[Item alloc] initWithAttributes:attributes];
[mutableItems addObject:item];
}
NSLog(@"here is a count: %i", [mutableItems count]);
if(block){
block(mutableItems);
}
并且在传入的块中,我有以下内容但是将错误列为注释:
[Item allItemsWithBlock:^(NSArray *items){
for(Item *thisItem in *items){ // The type 'NSArray' is not a pointer to a fast-enumerable object
NSLog(@"in the block here");
}
}];
我已经阅读了尝试快速枚举的内容,但我不确定问题是什么。是NSMutableArray - > NSArray有问题吗?是因为这个数组是在一个块中创建的,因此可能被视为可能仍然“开放变化”?我之前在项目中看到过这样的代码,似乎不是问题。
thx任何帮助
答案 0 :(得分:6)
这是因为NSArray * items已经是一个指向数组的指针,* items试图找到一个指向指针的指针,而不是指针。
只需替换:
for(Item *thisItem in *items){
使用:
for(Item *thisItem in items){