Sti*_*Sti 2 asynchronous objective-c nsmutablearray nsarray ios
在我的应用程序中,我试图能够从我的服务器下载两个对象,一个"文章"和一个图像.'article'对象(从sql-query翻译成NSObject的子类)有一个指向下载图像的指针,显然需要比文章查询更长的下载时间.当我'下载'文章时,他们最终会进入NSArray.当它们完成后,我将遍历数组以启动每个图像的异步下载,如下所示:
for(Article *a in articles)
{
NSString *url = a.imageURL;
//Start async download of this image
}
Run Code Online (Sandbox Code Playgroud)
我正在使用Parse Framework来执行此操作,因此对于没有使用它的人来说块可能看起来很奇怪,所以我只是解释一下:在块中(当异步下载完成时),我正在分配将NSData(图像)返回给另一个NSMutableArray名为的数组,articleImages我希望这个数组中的图像索引对应于另一个文章的索引; 两个阵列中的相同年表.
现在,我这样做是:[articleImages insertObject:data atIndex:i];(其中i来自for循环,没有真正使用上述的foreach),因为该块仍然是相同的for循环中.这是现在的工作,但到目前为止我只测试了三篇文章.如果我在这里并没有完全错误,那么这是一个糟糕而有缺陷的方法,就像image2下载速度比image1更快的情况,即使它稍后开始.在那些情况下,我想我会偶然发现一个异常,说我不能index:2在空数组中插入对象.
我正在考虑使用大小的虚拟数据填充数组[articles count],然后i在下载的图像中以随机顺序替换正确的index()虚拟数据.但即使想到这一点,我也觉得很脏.必须有一个正确的方法来做到这一点?我不完全确定要搜索什么...
另一个想法:创建articleImages一个NSMutableDictionary并使用图像索引(或一些独特的文章ID)作为关键:
articleImages[@(index)] = imageData;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2806 次 |
| 最近记录: |