Проектное решение: загрузка NSArray впереди, а не запросить у делегата конкретные элементы - PullRequest
0 голосов
/ 12 декабря 2011

У меня есть сетка, которую я хочу заполнить изображениями.Так что внутренне я использую 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 изображений на альбом, вы бы посоветовали использовать второй подход, который, очевидно, лучше масштабируется, поскольку не все данные должны быть загружены, или второй подходнемного перегружен для такого простого случая?

1 Ответ

1 голос
/ 12 декабря 2011

Всегда лучше загружать то, что вам нужно, а не загружать все сразу, особенно при использовании UITableView, поскольку он уже предназначен для загрузки содержимого в этом поместье. Это может быть «достаточно» для загрузки 10-20 альбомов с 10-15 изображениями, но это может быть намного быстрее, и когда эти размеры увеличиваются (если они увеличиваются), это будет становиться все медленнее и медленнее. Особенно для таких устройств, как iPhone, где отзывчивость пользовательского интерфейса является главным приоритетом, вы всегда хотите загружать свои данные максимально гибким способом и не загружать больше, чем необходимо.

...