diff options
author | Sebastian Schmidt <mrschmidt@google.com> | 2017-06-15 09:43:31 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-06-15 09:43:31 -0700 |
commit | 5cb9446fab0606b0ea6a49dcda50fb6bb6e5bbd4 (patch) | |
tree | c4aa472320bfb041540c5a865255b968b88016b4 /Firebase/Storage/FIRStorageDeleteTask.m | |
parent | c47a19dcf4fd341dbb290f0135b1aa9feda85da5 (diff) |
Calling stopFetching on GTMSessionFetcher to stop callbacks from bein… (#81)
* Calling stopFetching on GTMSeesionFetcher to stop callbacks from being called after deallocation.
Also fixing retain cycles in all task classes.
* Addressing build warnings
* Adjusting indentation
Diffstat (limited to 'Firebase/Storage/FIRStorageDeleteTask.m')
-rw-r--r-- | Firebase/Storage/FIRStorageDeleteTask.m | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/Firebase/Storage/FIRStorageDeleteTask.m b/Firebase/Storage/FIRStorageDeleteTask.m index 4f3f1cc..63254c7 100644 --- a/Firebase/Storage/FIRStorageDeleteTask.m +++ b/Firebase/Storage/FIRStorageDeleteTask.m @@ -21,6 +21,13 @@ FIRStorageVoidError _completion; } +@synthesize fetcher = _fetcher; +@synthesize fetcherCompletion = _fetcherCompletion; + +- (void) dealloc { + [_fetcher stopFetching]; +} + - (instancetype)initWithReference:(FIRStorageReference *)reference fetcherService:(GTMSessionFetcherService *)service completion:(FIRStorageVoidError)completion { @@ -40,14 +47,26 @@ _completion = nil; GTMSessionFetcher *fetcher = [self.fetcherService fetcherWithRequest:request]; + _fetcher = fetcher; + fetcher.comment = @"DeleteTask"; - [fetcher beginFetchWithCompletionHandler:^(NSData *_Nullable data, NSError *_Nullable error) { + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Warc-retain-cycles" + _fetcherCompletion = ^(NSData *_Nullable data, NSError *_Nullable error) { if (!self.error) { self.error = [FIRStorageErrors errorWithServerError:error reference:self.reference]; } if (callback) { callback(self.error); } + _fetcherCompletion = nil; + }; +#pragma clang diangostic pop + + __weak FIRStorageDeleteTask* weakSelf = self; + [fetcher beginFetchWithCompletionHandler:^(NSData *_Nullable data, NSError *_Nullable error) { + weakSelf.fetcherCompletion(data, error); }]; } |