数组有10个零对象?

时间:2015-07-08 06:08:26

标签: ios objective-c arrays nsmutablearray uicollectionview

所以我有四种类型的数组,

@property NSMutableArray *snowImageArray;
@property NSMutableArray *dogImageArray;
@property NSMutableArray *catImageArray;
@property NSMutableArray *rabbitImageArray;

这些数组存储自定义对象,如standardURL,username等。然后我创建了另一个名为

的数组
  @property NSMutableArray *allImageArray;

我将四个对象数组存储在allImageArray中。我想在集合视图中填充allImageArray ..到目前为止,我在cellForItemAtIndexPath方法中有这个...我像这样循环遍历数组..

NSArray *allImageArray = [self.allImageArray objectAtIndex:indexPath.row];
        NSLog(@"%@",allImageArray);
        for (NSMutableArray *searchDataImage in allImageArray) {
        for (ImageHelper *imageHelper in searchDataImage) {
            NSURL *url = [NSURL URLWithString:imageHelper.standardPhotoURL];
            NSData *data = [[NSData alloc]initWithContentsOfURL:url];
            UIImage *image = [UIImage imageWithData:data];
            cell.imageView.image = image;
        }
    }

现在由于某种原因,allImageArray有10个对象,它们几乎没有任何东西,它打印出10个具有@“0对象”的对象..我在viewDidLoad中实例化了我的allImageArray。我还仔细检查了我的方法,并确保我只对狗,雪,兔子做了四次这样的事情。猫:

             [self.rabbitImageArray addObject:imageHelper]; //adds the objects to the array
             [self.allImageArray addObject:self.rabbitImageArray];
             [self.tableView reloadData]
请告诉我我做错了什么? :/

3 个答案:

答案 0 :(得分:4)

尝试在添加对象之前初始化数组:

self.snowImageArray = [NSMutableArray new];
self.dogImageArray = [NSMutableArray new];
self.catImageArray = [NSMutableArray new];
self.rabbitImageArray = [NSMutableArray  new];

self.allImageArray = [NSMutableArray new];

答案 1 :(得分:1)

总是为数​​组分配内存。
self.snowImageArray = [[NSArray alloc]init];

self.snowImageArray = [NSMutableArray new];

答案 2 :(得分:0)

所以所有答案都有些正确,我已经为所有阵列分配了内存。

我目前正在尝试在表视图单元格中显示每个数组,并且在tableview单元格内部我有一个集合视图..我的代码的问题是我的allImagesArray中的一个数组是空的。所以我所做的就是添加了

 if (self.allImageArray.count == 4) {
        [cell.collectionView reloadData];
    }

到UITableViewCell:cellForRowAtIndexPath方法。这确保总共有4个数组。他们都不是空的。