Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add [weak self] where missing from closures #112

Merged
merged 3 commits into from Jan 30, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
8 changes: 3 additions & 5 deletions .travis.yml
@@ -1,15 +1,13 @@
language: swift
osx_image: xcode10
cache:
- bundler
- cocoapods
env:
matrix:
- TEST_TYPE=iOS
- TEST_TYPE=Lint
- TEST_TYPE=CocoaPods
before_install:
- |
if [ "$TEST_TYPE" = Lint ]; then
brew update
fi
install:
- |
if [ "$TEST_TYPE" = Lint ]; then
Expand Down
21 changes: 12 additions & 9 deletions Source/Admin/API/HTTPAdminAPI.swift
Expand Up @@ -29,15 +29,17 @@ extension HTTPAdminAPI {
public func login(withParams params: LoginParams,
callback: @escaping Request<AuthenticationToken>.Callback)
-> Request<AuthenticationToken>? {
let request: Request<AuthenticationToken>? = self.request(toEndpoint: APIAdminEndpoint.login(params: params)) { result in
switch result {
case let .success(data: authenticationToken):
self.config.credentials.update(withAuthenticationToken: authenticationToken)
callback(.success(data: authenticationToken))
case let .fail(error):
callback(.fail(error: error))
let request: Request<AuthenticationToken>? =
self.request(toEndpoint: APIAdminEndpoint.login(params: params)) { [weak self] result in
guard let self = self else { return }
switch result {
case let .success(data: authenticationToken):
self.config.credentials.update(withAuthenticationToken: authenticationToken)
callback(.success(data: authenticationToken))
case let .fail(error):
callback(.fail(error: error))
}
}
}
return request
}

Expand All @@ -48,7 +50,8 @@ extension HTTPAdminAPI {
@discardableResult
public func logout(withCallback callback: @escaping Request<EmptyResponse>.Callback)
-> Request<EmptyResponse>? {
let request: Request<EmptyResponse>? = self.request(toEndpoint: APIAdminEndpoint.logout) { result in
let request: Request<EmptyResponse>? = self.request(toEndpoint: APIAdminEndpoint.logout) { [weak self] result in
guard let self = self else { return }
switch result {
case let .success(data: data):
self.config.credentials.invalidate()
Expand Down
21 changes: 12 additions & 9 deletions Source/Client/API/HTTPClientAPI.swift
Expand Up @@ -23,7 +23,8 @@ extension HTTPClientAPI {
@discardableResult
public func logout(withCallback callback: @escaping Request<EmptyResponse>.Callback)
-> Request<EmptyResponse>? {
let request: Request<EmptyResponse>? = self.request(toEndpoint: APIClientEndpoint.logout) { result in
let request: Request<EmptyResponse>? = self.request(toEndpoint: APIClientEndpoint.logout) { [weak self] result in
guard let self = self else { return }
switch result {
case let .success(data: data):
self.config.credentials.invalidate()
Expand All @@ -48,15 +49,17 @@ extension HTTPClientAPI {
public func login(withParams params: LoginParams,
callback: @escaping Request<AuthenticationToken>.Callback)
-> Request<AuthenticationToken>? {
let request: Request<AuthenticationToken>? = self.request(toEndpoint: APIClientEndpoint.login(params: params)) { result in
switch result {
case let .success(data: authenticationToken):
self.config.credentials.update(withAuthenticationToken: authenticationToken)
callback(.success(data: authenticationToken))
case let .fail(error):
callback(.fail(error: error))
let request: Request<AuthenticationToken>? =
self.request(toEndpoint: APIClientEndpoint.login(params: params)) { [weak self] result in
guard let self = self else { return }
switch result {
case let .success(data: authenticationToken):
self.config.credentials.update(withAuthenticationToken: authenticationToken)
callback(.success(data: authenticationToken))
case let .fail(error):
callback(.fail(error: error))
}
}
}
return request
}

Expand Down
4 changes: 2 additions & 2 deletions Source/Core/QRCode/QRReader.swift
Expand Up @@ -65,13 +65,13 @@ extension QRReader: AVCaptureMetadataOutputObjectsDelegate {
didOutput metadataObjects: [AVMetadataObject],
from _: AVCaptureConnection) {
self.sessionQueue.async { [weak self] in
guard let weakSelf = self else { return }
guard let self = self else { return }
guard !metadataObjects.isEmpty,
let metadataObject = metadataObjects[0] as? AVMetadataMachineReadableCodeObject,
metadataObject.type == AVMetadataObject.ObjectType.qr,
let decodedData = metadataObject.stringValue
else { return }
weakSelf.didReadCode(decodedData)
self.didReadCode(decodedData)
}
}
}
6 changes: 4 additions & 2 deletions Source/Core/QRCode/QRScannerViewModel.swift
Expand Up @@ -32,8 +32,9 @@ class QRScannerViewModel: QRScannerViewModelProtocol {

private lazy var reader: QRReader = {
QRReader(onFindClosure: { [weak self] value in
guard let self = self else { return }
DispatchQueue.main.async {
self?.loadTransactionRequest(withFormattedId: value)
self.loadTransactionRequest(withFormattedId: value)
}
})
}()
Expand All @@ -52,7 +53,8 @@ class QRScannerViewModel: QRScannerViewModelProtocol {
self.loadedIds.append(formattedId)
self.stopScanning()
self.onLoadingStateChange?(true)
self.verifier.onData(data: formattedId) { result in
self.verifier.onData(data: formattedId) { [weak self] result in
guard let self = self else { return }
self.onLoadingStateChange?(false)
switch result {
case let .success(data: transactionRequest):
Expand Down
12 changes: 7 additions & 5 deletions Source/Core/Websocket/SocketClient.swift
Expand Up @@ -129,9 +129,9 @@ public class SocketClient {
}
self.reconnectTimer?.invalidate()
self.reconnectTimer = Timer.scheduledTimer(withTimeInterval: self.reconnectDelay, repeats: false, block: { [weak self] _ in
guard let weakself = self, weakself.shouldBeConnected else { return }
weakself.connect()
weakself.rejoinOpenedChannels()
guard let self = self, self.shouldBeConnected else { return }
self.connect()
self.rejoinOpenedChannels()
})
}

Expand All @@ -143,14 +143,16 @@ public class SocketClient {

private func startHeartbeatTimer() {
self.heartbeatTimer?.invalidate()
self.heartbeatTimer = Timer.scheduledTimer(withTimeInterval: self.heartbeatDelay, repeats: true, block: { _ in
self.heartbeatTimer = Timer.scheduledTimer(withTimeInterval: self.heartbeatDelay, repeats: true, block: { [weak self] _ in
guard let self = self else { return }
self.send(topic: "phoenix", event: .heartbeat)
})
}

private func resetBufferTimer() {
self.sendBufferTimer?.invalidate()
self.sendBufferTimer = Timer.scheduledTimer(withTimeInterval: self.flushDelay, repeats: true, block: { _ in
self.sendBufferTimer = Timer.scheduledTimer(withTimeInterval: self.flushDelay, repeats: true, block: { [weak self] _ in
guard let self = self else { return }
self.flushSendBuffer()
})
self.sendBufferTimer?.fire()
Expand Down