2012-08-29 100 views
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]); 
     }]; 
    } 
} 

然而,当我开始了新的一页,我想清楚了最初的阵列,并开始将对象添加到我的第二页,等等。但是,如果我清除我的数组,然后我的页面数组最终变成空的。我怎样才能解决这个问题?谢谢!

+0

嗯.. 。这里不会有任何东西...... – Imirak

回答

0

你需要,当你将其插入pagesArray,使您的itemsOnAPage数组的副本,否则你会在最后一页的多个副本结束:如果您清除阵列

 [pagesArray addObject:[NSArray arrayWithArray:itemsOnAPage]]; 
+0

太棒了,谢谢一堆! – Crystal

+0

@dasblinenlight是arrayWithArray:与Xcode 4.4.1中的@ [itemsOnAPage]相同? – Crystal

+0

@Crystal我不知道,新的酷语法不适用于iOS开发,所以我还没有使用它。据说,它是一样的,但最容易找到的就是试试看。 – dasblinkenlight