diff --git a/ParseUI/Classes/QueryCollectionViewController/PFQueryCollectionViewController.m b/ParseUI/Classes/QueryCollectionViewController/PFQueryCollectionViewController.m index 2ca9442..6b87638 100644 --- a/ParseUI/Classes/QueryCollectionViewController/PFQueryCollectionViewController.m +++ b/ParseUI/Classes/QueryCollectionViewController/PFQueryCollectionViewController.m @@ -234,10 +234,10 @@ - (BFTask *)loadObjects:(NSInteger)page clear:(BOOL)clear { self.loading = YES; [self objectsWillLoad]; - BFTaskCompletionSource *source = [BFTaskCompletionSource taskCompletionSource]; - PFQuery *query = [self queryForCollection]; [self _alterQuery:query forLoadingPage:page]; + + BFTaskCompletionSource PF_GENERIC(NSArray<__kindof PFObject *>*)*source = [BFTaskCompletionSource taskCompletionSource]; [query findObjectsInBackgroundWithBlock:^(NSArray *foundObjects, NSError *error) { if (![Parse isLocalDatastoreEnabled] && query.cachePolicy != kPFCachePolicyCacheOnly && @@ -266,9 +266,12 @@ - (BFTask *)loadObjects:(NSInteger)page clear:(BOOL)clear { [self objectsDidLoad:error]; [self.refreshControl endRefreshing]; - [source setError:error]; + if (error) { + [source trySetError:error]; + } else { + [source trySetResult:foundObjects]; + } }]; - return source.task; } diff --git a/ParseUI/Classes/QueryTableViewController/PFQueryTableViewController.m b/ParseUI/Classes/QueryTableViewController/PFQueryTableViewController.m index bfb5d83..d8b58d2 100644 --- a/ParseUI/Classes/QueryTableViewController/PFQueryTableViewController.m +++ b/ParseUI/Classes/QueryTableViewController/PFQueryTableViewController.m @@ -220,10 +220,10 @@ - (BFTask *)loadObjects:(NSInteger)page clear:(BOOL)clear { self.loading = YES; [self objectsWillLoad]; - BFTaskCompletionSource *source = [BFTaskCompletionSource taskCompletionSource]; - PFQuery *query = [self queryForTable]; [self _alterQuery:query forLoadingPage:page]; + + BFTaskCompletionSource PF_GENERIC(NSArray<__kindof PFObject *>*)*source = [BFTaskCompletionSource taskCompletionSource]; [query findObjectsInBackgroundWithBlock:^(NSArray *foundObjects, NSError *error) { if (![Parse isLocalDatastoreEnabled] && query.cachePolicy != kPFCachePolicyCacheOnly && @@ -252,7 +252,11 @@ - (BFTask *)loadObjects:(NSInteger)page clear:(BOOL)clear { [self objectsDidLoad:error]; [self.refreshControl endRefreshing]; - [source setError:error]; + if (error) { + [source trySetError:error]; + } else { + [source trySetResult:foundObjects]; + } }]; return source.task;