设计决策:预先加载NSArray vs.请求委托特定项



我有一个网格,我想用图像填充。内部我使用UITableView。因此,从我的角度来看,我现在有两个选项来为我的类提供数据:

1:提供开头的所有数据:

PictureViewController *picVC = [[PictureViewController alloc]initWithAlbumsAndPictures:albumsAndPicturesObject]]
// Go on and display the View Controller which has now all the data it needs

2:使用委托请求相册和图片

PictureViewController *picVC = [[PictureViewController alloc]init]
picVC.delegate = self; // PictureViewControllerDelegate
....
#pragma mark - PictureViewControllerDelegate
- (NSArray *) pictureViewControllerAllAlbums:(id)sender{
    // Return all the albums
}
- (id) pictureViewController:(id)sender photosInAlbum:(id) album{
    // Return the images for the given Album
}

从我的角度来看,第一种方法可能更简单一些,但可能不太灵活。

对于用户可能有10到20个相册,每个相册可能有10到15张图片的情况,你会建议使用第二种方法吗?因为不是所有的数据都必须加载,所以显然第二种方法的可伸缩性更好,或者第二种方法对于这样一个简单的情况来说有点过度设计了?

最好是加载你需要的东西,而不是一次加载所有东西,特别是当使用UITableView时,因为它已经被设计为在该区域加载其内容。加载10-20个带有10-15张图片的相册可能"足够"了,但它可能会快得多,当这些大小增加时(如果它们增加的话),它会变得越来越慢。特别是对于像iPhone这样的设备,UI响应性是最重要的,你总是希望以最灵活的方式加载数据,而不是加载过多的数据。

最新更新