我正在加载一个带有来自parse.com的查询的集合视图,该查询首先按最新对象排序。我的问题是我看到了不可预测的订单。在初始启动时,它始终具有正确的顺序,但在刷新之后,订购将始终改变。
我的查询返回一个名为objects的NSArray,我遍历此数组并将listingPhotos键添加到数组_images。
for (id object in objects) {
[_images addObject:[object objectForKey:@"listingPhotos"]];
}
_images现在包含一个数组数组:
(
"<PFFile: 0x7f96f1703d70>",
"<PFFile: 0x7f96f14c9320>"
),
(
"<PFFile: 0x7f96f1708810>",
"<PFFile: 0x7f96f14da500>"
),
(
"<PFFile: 0x7f96f1486920>",
"<PFFile: 0x7f96f14bdfe0>"
),
(
"<PFFile: 0x7f96f14f0620>",
"<PFFile: 0x7f96f15fa0e0>",
"<PFFile: 0x7f96f15a6830>"
),
(
"<PFFile: 0x7f96f164d7e0>"
),
(
"<PFFile: 0x7f96f160cc70>",
"<PFFile: 0x7f96f1669210>"
)
)
我只想从每个数组中抓取第一个图像,所以我会这样迭代。 _thumbnail是一个PFFile。然后我下载每个文件并将图像添加到_imagesArray,然后用于填充单元格:
for(id object in _images) {
_thumbNail = [object firstObject];
[_thumbNail2 getDataInBackgroundWithBlock:^(NSData *data, NSError *error) {
if (!error) {
[_imagesArray addObject:[UIImage imageWithData:data]];
{
当我记录第二个循环时,它总是抓取第一个图像,所以我知道问题出在第一个循环中。
我还有一个下拉刷新操作,但它只是加载查询:
- (void)refresh:(id)sender {
[self parseQuery];
[(UIRefreshControl *)sender endRefreshing];
}
答案 0 :(得分:0)
这种行为是由于在查询中初始化数组时出现笨拙的错误造成的。