在视图控制器(Tab 1)中,我从如下核心数据加载:
- (void)loadRecordsFromCoreData {
[self.managedObjectContext performBlockAndWait:^{
NSError *error = nil;
NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:@"Item"];
[request setSortDescriptors:[NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"order" ascending:YES]]];
self.items = [self.managedObjectContext executeFetchRequest:request error:&error];
}];
}
然后我显示这样的项目(在 viewDidAppear 中):
- (void)displayItems
{
for(UIView *subview in [self.itemRow subviews]) {
[subview removeFromSuperview];
}
int xPos = kXItemOffsetIphone;
for (Item *item in self.items) {
ItemView *itemView = [[ItemView alloc] initWithFrame:CGRectMake(xPos, kYItemOffsetIphone, kItemWidthIphone, kItemHeightIphone) ];
[itemView layoutWithData:item];
[self.itemRow addSubview:itemView];
xPos += kXItemSpacingIphone;
}
}
ItemView 是一个 UIView 子类,它显示与项目关联的图像等。当我第一次运行应用程序时,所有项目都显示出来。但是,如果我单击另一个选项卡,然后返回选项卡 1,我的所有项目都会消失。项目数组仍然存在,但数组中的每个项目都是“故障”,因此没有显示任何内容。非常令人沮丧。我怎样才能防止这些项目成为“故障”?