中重新加载数据
嗨,我正在开发小型IOS应用程序,我是IOS开发的新手。在我的应用程序中,我使用集合视图来显示我的数据。我正在做的是从服务器中获取数据,然后在UIView控制器中显示。这是我的代码看起来像
- (void)viewDidLoad
{
[super viewDidLoad];
// call for fetching data from server
}
// My collection view methods
-(NSInteger) numberOfSectionsInCollectionView:(UICollectionView *)collectionView
{
return 1;
}
-(NSInteger) collectionView:(UICollectionView *)collectionView numberOfItemsInSection: (NSInteger)section
{
return [_channelArray count];
}
-(UICollectionViewCell *) collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"Cell" forIndexPath:indexPath];
cell.image = // set image from channel array.
return cell;
}
// callback for m web service call
-(void) didReceiveSubscriberChannelList:(SubscriberChannelListDataModel *)subscriberChannelListInfo
{
_channelList = subscriberChannelListInfo;
_channelArray = subscriberChannelListInfo.chanellist;
[collectionView reloadData];
}
上面的代码适用于静态数据。但现在我想显示我的服务器数据。我的重新加载数据不起作用。如何做到这一点。需要帮助。非常感谢。
您是否考虑将回调方法数据放在块中?
// callback for m web service call
-(void) didReceiveSubscriberChannelList:(SubscriberChannelListDataModel *)subscriberChannelListInfo
{
dispatch_async(dispatch_get_main_queue(), ^{
_channelList = subscriberChannelListInfo;
_channelArray = subscriberChannelListInfo.chanellist;
[collectionView reloadData];
});
}
这样,当回调返回时,它将在主线程(UI线程)