Ios6 无法从url';s、 使用GCD

Ios6 无法从url';s、 使用GCD,ios6,uicollectionview,image-caching,Ios6,Uicollectionview,Image Caching,我正在尝试使用UICollectionView创建图像库。但是dispatch_队列似乎没有下载映像,而是跳过下载并继续执行下一条语句 下面是我的代码: for(int i=0;i<[_urlArray count];i++){ dispatch_sync(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH,0), ^{ NSURL *url = [NSURL URLWithString:[NSString stringWi

我正在尝试使用UICollectionView创建图像库。但是dispatch_队列似乎没有下载映像,而是跳过下载并继续执行下一条语句

下面是我的代码:

    for(int i=0;i<[_urlArray count];i++){
dispatch_sync(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH,0), ^{
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@",[_urlArray objectAtIndex:i]]];

    NSData *data = [NSData dataWithContentsOfURL:url];
    NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
    path = [path stringByAppendingString:[NSString stringWithFormat:@"%d.png",i]];
    NSLog(@"img data %@",data);
    [data writeToFile:path atomically:YES];

     UIImage *theImage=[UIImage imageNamed:path];
    [_imgArray addObject:theImage];
    dispatch_async(dispatch_get_main_queue(), ^{

    });
});
}

用于(int i=0;i您是否尝试将所有数据和图像从URL存储到iOS缓存或任何DB?

是否执行到NSData*数据?如果执行到该行,则检查数据是否存储在文档目录中。不,根本不下载。它跳过下一个语句。它将下载lly dispatch_queue将在几秒钟后执行,因此将断点放在NSURL*url之后的dispatch_queue内,它肯定会执行它不应该跳过。是的,我在尝试打印数据时得到一个空值。它说变量在添加断点后不是NSData。k检查您获得的url是否正确。[NSString stringWithFormat:@“%@,[\u URLARY objectAtIndex:i]您复制并粘贴到浏览器中的字符串,然后在浏览器中加载url检查图像是否存在。谢谢您的回复。不,我没有缓存它。它只是在解析远程json文件并将图像url存储到数组中。您可以从我的代码中看到,urlArray用于将url作为字符串传递到NSURL.Hmmmm..我已经完成了对于这种调度队列问题,我认为您应该添加主代码…以调度异步(dispatch_get_main_queue(),^{UIImage*theImage=[UIImage imageNamed:path];[\u imgArray addObject:theImage];});因为你的代码似乎不完整..我不确定,但你应该试试这个..最好的运气你有什么建议?我甚至尝试了SDWebImage,但从数组中的第一个url下载。它从不尝试从其他url下载。你能告诉我代码的哪一部分在这里吗h_async(dispatch_get_main_queue()??我的url的空间很少,因此它跳过了代码。它现在已修复。感谢好友:)