Я не думаю, что такая вещь существует изначально - вам, вероятно, придется написать свой собственный класс, который поддерживает очередь сетевых объектов. Ваш заголовок может выглядеть примерно так:
@interface ObjcBlockingQueue : NSObject {
// The objects that you're holding onto
NSArray *objects;
}
@property(nonatomic,retain) NSArray *objects;
- (ServerData *)getNextChunk;
Затем вы можете реализовать getNextChunk
для извлечения и возврата верхнего объекта из массива objects
, и если [objects count]
меньше определенного значения, запустите поток для получения еще нескольких объектов (возможно, используя NSURLConnection с ObjcBlockingQueue будучи делегатом). Вы также можете запустить этот поток / соединение внутри переопределенного метода init
для предварительного заполнения очереди.
Вы также можете подумать о добавлении
- (BOOL)isChunkAvailable;
метод, который позволит вашему потоку отображения знать, может ли он отображать что-то новое прямо сейчас или должен ли он отображать загрузочное сообщение. В зависимости от того, где вы отображаете данные и от того, как структурировано ваше приложение, может оказаться полезным сделать ObjcBlockingQueue одноэлементным классом.