From 831f9238ae0fb54524ff9b5eed65bb8aeea20640 Mon Sep 17 00:00:00 2001 From: Albert Aleksieiev Date: Tue, 2 Apr 2019 17:18:56 +0300 Subject: [PATCH 1/2] Dev: fix fatalError if there is no task in TaskRegistry --- Foundation/URLSession/TaskRegistry.swift | 4 ++++ Foundation/URLSession/URLSession.swift | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/Foundation/URLSession/TaskRegistry.swift b/Foundation/URLSession/TaskRegistry.swift index b817bcec0a..0098ce7fdd 100644 --- a/Foundation/URLSession/TaskRegistry.swift +++ b/Foundation/URLSession/TaskRegistry.swift @@ -115,4 +115,8 @@ extension URLSession._TaskRegistry { } return b } + + func containsBehaviour(for task: URLSessionTask) -> Bool { + return behaviours[task.taskIdentifier] != nil + } } diff --git a/Foundation/URLSession/URLSession.swift b/Foundation/URLSession/URLSession.swift index 3d503d43c0..f974626043 100644 --- a/Foundation/URLSession/URLSession.swift +++ b/Foundation/URLSession/URLSession.swift @@ -546,6 +546,10 @@ internal extension URLSession { } func behaviour(for task: URLSessionTask) -> _TaskBehaviour { + guard taskRegistry.containsBehaviour(for: task) else { + return .noDelegate + } + switch taskRegistry.behaviour(for: task) { case .dataCompletionHandler(let c): return .dataCompletionHandler(c) case .downloadCompletionHandler(let c): return .downloadCompletionHandler(c) From 9e954e06fef2370616c9a42ff0d418e7001ebb3e Mon Sep 17 00:00:00 2001 From: Albert Aleksieiev Date: Tue, 2 Apr 2019 17:41:29 +0300 Subject: [PATCH 2/2] Dev: avoid using bundle in Android --- Foundation/NSString.swift | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Foundation/NSString.swift b/Foundation/NSString.swift index 57f651c4f2..b1f7f78162 100644 --- a/Foundation/NSString.swift +++ b/Foundation/NSString.swift @@ -27,7 +27,11 @@ func NSLocalizedString(_ key: String, bundle: Bundle = Bundle.main, value: String = "", comment: String) -> String { - return bundle.localizedString(forKey: key, value: value, table: tableName) + #if os(Android) + return key + #else + return bundle.localizedString(forKey: key, value: value, table: tableName) + #endif } #if os(OSX) || os(iOS)