我有一个 UICollectionView,其 collectionView:numberOfItemsInSection: 定义如下:
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
return self.contents.count;
}
self.contents 被延迟分配如下:
- (NSArray *)contents
{
if (!_contents) {
_contents = [[XYZSharedMemoryStore sharedStore] clContents];
}
return _contents;
}
clContents 返回一个 NSArray,如下:
- (NSArray *)clContents
{
NSString *path = [[NSBundle mainBundle] pathForResource:@"cl_contents" ofType:@"plist"];
NSArray *products = [[NSArray alloc] initWithContentsOfFile:path];
return products;
}
XYZSharedMemoryStore 是一个单例,定义如下:
+ (id)sharedStore
{
static XYZSharedMemoryStore *sharedStore = nil;
if (!sharedStore) {
sharedStore = [[super allocWithZone:NULL] init];
}
return sharedStore;
}
+ (id)allocWithZone:(NSZone *)zone
{
return [self sharedStore];
}
- (id)init
{
self = [super init];
if (self) {
// STUFF
}
return self;
}
转一圈,我遇到的问题是 collectionView:numberOfItemsInSection: 中的 self.contents.count:当我在发布配置文件中时返回 0,在调试模式下返回正确的数字(10),所以在发布配置文件中,我UICollectionView 不显示任何单元格。配置文件处于 Xcode 创建它们的默认状态。
有什么想法可能会在这里发生吗?