我正在尝试将对象添加到数组中。我要特别做的是,计算我可以在页面上放置多少项,将这些项添加到我的itemsOnAPageArray,将其添加到我的pagesArray,然后再使用此信息。所以我的代码是:
NSMutableArray *pagesArray = [[NSMutableArray alloc] init];
NSMutableArray *itemsOnAPage = [[NSMutableArray alloc] init];
for (NSUInteger i = 0; i < [self.textObjects count]; i++) {
TextObject *t = [self.textObjects objectAtIndex:i];
width = MAX(width, t.size.width);
// Fits on a page, add the object, update the size
if (height + t.size.height < kReportPDFDefaultHeight) {
[itemsOnAPage addObject:t];
height += t.size.height;
}
// Doesn't fit on a page, add the items to the page
else {
[pagesArray addObject:itemsOnAPage];
[pagesArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
NSLog(@"obj before: %@", [obj description]);
}];
[itemsOnAPage removeAllObjects];
[pagesArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
NSLog(@"obj after: %@", [obj description]);
}];
}
}
但是,当我开始一个新页面时,我想清除初始数组并开始向第二页添加对象,依此类推。但是如果我清除了我的数组,那么我的pagesArray最终会变空。我怎么能绕过这个?谢谢!
答案 0 :(得分:0)
当您将itemsOnAPage
数组插入pagesArray
时,需要制作一份副本,否则您最终会得到最后一页的多个副本:
[pagesArray addObject:[NSArray arrayWithArray:itemsOnAPage]];