1

我正在尝试将对象添加到数组中。我具体要做的是,计算我可以在页面上容纳多少项目,将这些项目添加到我的 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 最终会是空的。我该如何解决这个问题?谢谢!

4

1 回答 1

0

itemsOnAPage当您将数组插入 时,您需要制作一个副本pagesArray,否则您最终会得到最后一页的多个副本:

        [pagesArray addObject:[NSArray arrayWithArray:itemsOnAPage]];
于 2012-08-29T21:53:44.727 回答