Skip to content

Commit cc318dd

Browse files
committed
Merge pull request parse-community#212 from ParsePlatform/nlutsenko.qvc.task
Fix never succesfully completed task of -loadObjects in Query/Collection View Controllers.
2 parents a10d3cc + f653e1f commit cc318dd

File tree

2 files changed

+14
-7
lines changed

2 files changed

+14
-7
lines changed

ParseUI/Classes/QueryCollectionViewController/PFQueryCollectionViewController.m

+7-4
Original file line numberDiff line numberDiff line change
@@ -234,10 +234,10 @@ - (void)removeObjectsAtIndexPaths:(NSArray *)indexPaths {
234234
self.loading = YES;
235235
[self objectsWillLoad];
236236

237-
BFTaskCompletionSource *source = [BFTaskCompletionSource taskCompletionSource];
238-
239237
PFQuery *query = [self queryForCollection];
240238
[self _alterQuery:query forLoadingPage:page];
239+
240+
BFTaskCompletionSource PF_GENERIC(NSArray<__kindof PFObject *>*)*source = [BFTaskCompletionSource taskCompletionSource];
241241
[query findObjectsInBackgroundWithBlock:^(NSArray *foundObjects, NSError *error) {
242242
if (![Parse isLocalDatastoreEnabled] &&
243243
query.cachePolicy != kPFCachePolicyCacheOnly &&
@@ -266,9 +266,12 @@ - (void)removeObjectsAtIndexPaths:(NSArray *)indexPaths {
266266
[self objectsDidLoad:error];
267267
[self.refreshControl endRefreshing];
268268

269-
[source setError:error];
269+
if (error) {
270+
[source trySetError:error];
271+
} else {
272+
[source trySetResult:foundObjects];
273+
}
270274
}];
271-
272275
return source.task;
273276
}
274277

ParseUI/Classes/QueryTableViewController/PFQueryTableViewController.m

+7-3
Original file line numberDiff line numberDiff line change
@@ -220,10 +220,10 @@ - (void)clear {
220220
self.loading = YES;
221221
[self objectsWillLoad];
222222

223-
BFTaskCompletionSource *source = [BFTaskCompletionSource taskCompletionSource];
224-
225223
PFQuery *query = [self queryForTable];
226224
[self _alterQuery:query forLoadingPage:page];
225+
226+
BFTaskCompletionSource PF_GENERIC(NSArray<__kindof PFObject *>*)*source = [BFTaskCompletionSource taskCompletionSource];
227227
[query findObjectsInBackgroundWithBlock:^(NSArray *foundObjects, NSError *error) {
228228
if (![Parse isLocalDatastoreEnabled] &&
229229
query.cachePolicy != kPFCachePolicyCacheOnly &&
@@ -252,7 +252,11 @@ - (void)clear {
252252
[self objectsDidLoad:error];
253253
[self.refreshControl endRefreshing];
254254

255-
[source setError:error];
255+
if (error) {
256+
[source trySetError:error];
257+
} else {
258+
[source trySetResult:foundObjects];
259+
}
256260
}];
257261

258262
return source.task;

0 commit comments

Comments
 (0)