枚举时IOS不可预测的数组排序

时间:2014-09-30 18:39:40

标签: ios objective-c arrays parse-platform

我正在加载一个带有来自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];
}

1 个答案:

答案 0 :(得分:0)

这种行为是由于在查询中初始化数组时出现笨拙的错误造成的。