Переглянути джерело

Reduce code duplication in Swift version-specific code paths

Sebastian Hagedorn 7 роки тому
батько
коміт
09d4a917aa
1 змінених файлів з 5 додано та 2 видалено
  1. 5 2
      Lib/KeychainAccess/Keychain.swift

+ 5 - 2
Lib/KeychainAccess/Keychain.swift

@@ -778,10 +778,13 @@ public final class Keychain {
     }
 
     public func allKeys() -> [String] {
+        let allItems = type(of: self).prettify(itemClass: itemClass, items: items())
+        let filter: ([String: Any]) -> String? = { $0["key"] as? String }
+
         #if swift(>=4.1)
-            return type(of: self).prettify(itemClass: itemClass, items: items()).compactMap { $0["key"] as? String }
+            return allItems.compactMap(filter)
         #else
-            return type(of: self).prettify(itemClass: itemClass, items: items()).flatMap { $0["key"] as? String }
+            return allItems.flatMap(filter)
         #endif
     }