@@ -31,78 +31,97 @@ extension Optional: KKGenericCompatible {
3131}
3232
3333public extension KKGeneric where Base == Optional < T > {
34+ /// get the most inner value
3435 var value : Any ? { return base. kk_value }
3536
37+ /// convert value to String
3638 var string : String ? {
3739 return base. kk_value ( String . self) as? String
3840 }
3941
42+ /// convert value to Bool
4043 var bool : Bool ? {
4144 return base. kk_value ( Bool . self) as? Bool
4245 }
4346
47+ /// convert value to Int
4448 var int : Int ? {
4549 return base. kk_value ( Int . self) as? Int
4650 }
4751
52+ /// convert value to Int8
4853 var int8 : Int8 ? {
4954 return base. kk_value ( Int8 . self) as? Int8
5055 }
5156
57+ /// convert value to Int16
5258 var int16 : Int16 ? {
5359 return base. kk_value ( Int16 . self) as? Int16
5460 }
5561
62+ /// convert value to Int32
5663 var int32 : Int32 ? {
5764 return base. kk_value ( Int32 . self) as? Int32
5865 }
5966
67+ /// convert value to Int64
6068 var int64 : Int64 ? {
6169 return base. kk_value ( Int64 . self) as? Int64
6270 }
6371
72+ /// convert value to UInt
6473 var uInt : UInt ? {
6574 return base. kk_value ( UInt . self) as? UInt
6675 }
6776
77+ /// convert value to UInt8
6878 var uInt8 : UInt8 ? {
6979 return base. kk_value ( UInt8 . self) as? UInt8
7080 }
7181
82+ /// convert value to UInt16
7283 var uInt16 : UInt16 ? {
7384 return base. kk_value ( UInt16 . self) as? UInt16
7485 }
7586
87+ /// convert value to UInt32
7688 var uInt32 : UInt32 ? {
7789 return base. kk_value ( UInt32 . self) as? UInt32
7890 }
7991
92+ /// convert value to UInt64
8093 var uInt64 : UInt64 ? {
8194 return base. kk_value ( UInt64 . self) as? UInt64
8295 }
8396
97+ /// convert value to Float
8498 var float : Float ? {
8599 return base. kk_value ( Float . self) as? Float
86100 }
87101
102+ /// convert value to Double
88103 var double : Double ? {
89104 return base. kk_value ( Double . self) as? Double
90105 }
91106
92107 #if canImport(CoreGraphics)
108+ /// convert value to CGFloat
93109 var cgFloat : CGFloat ? {
94110 return base. kk_value ( CGFloat . self) as? CGFloat
95111 }
96112 #endif
97113
114+ /// convert value to Decimal
98115 var decimal : Decimal ? {
99116 return base. kk_value ( Decimal . self) as? Decimal
100117 }
101118
119+ /// convert value to NSNumber
102120 var number : NSNumber ? {
103121 return base. kk_value ( NSNumber . self) as? NSNumber
104122 }
105123
124+ /// convert value to NSDecimalNumber
106125 var decimalNumber : NSDecimalNumber ? {
107126 return base. kk_value ( NSDecimalNumber . self) as? NSDecimalNumber
108127 }
@@ -281,16 +300,12 @@ private extension Optional {
281300 }
282301
283302 func _JSON( from array: [ Any ] ) -> Any ? {
284- let newArray = array. compactMap {
285- $0~? . kk_JSON( )
286- }
303+ let newArray = array. compactMap { $0~? . kk_JSON( ) }
287304 return newArray. isEmpty ? nil : newArray
288305 }
289306
290307 func _JSON( from dict: [ String : Any ] ) -> Any ? {
291- let newDict = dict. compactMapValues {
292- $0~? . kk_JSON( )
293- }
308+ let newDict = dict. compactMapValues { $0~? . kk_JSON( ) }
294309 return newDict. isEmpty ? nil : newDict
295310 }
296311
@@ -325,34 +340,18 @@ protocol SwiftArrayValue: ArrayValue {}
325340extension Array : SwiftArrayValue { }
326341
327342protocol SetValue : CollectionValue {
328- // func kk_map<T>(_ transform: (Any) throws -> T) rethrows -> [T]
329- // func kk_compactMap<T>(_ transform: (Any) throws -> T?) rethrows -> [T]
330343 func kk_array( ) -> [ Any ]
331344}
332- extension NSSet : SetValue {
333- // func kk_map<T>(_ transform: (Any) throws -> T) rethrows -> [T] {
334- // return map { try! transform($0) }
335- // }
336- // func kk_compactMap<T>(_ transform: (Any) throws -> T?) rethrows -> [T] {
337- // return compactMap { try! transform($0) }
338- // }
339- func kk_array( ) -> [ Any ] {
340- return [ Any] ( self )
341- }
342- }
343- protocol SwiftSetValue : SetValue { }
344- extension Set : SwiftSetValue {
345- // func kk_map<T>(_ transform: (Any) throws -> T) rethrows -> [T] {
346- // return map { try! transform($0) }
347- // }
348- // func kk_compactMap<T>(_ transform: (Any) throws -> T?) rethrows -> [T] {
349- // return compactMap { try! transform($0) }
350- // }
345+ extension SetValue where Self: Sequence {
351346 func kk_array( ) -> [ Any ] {
352347 return map { $0 }
353348 }
354349}
355350
351+ extension NSSet : SetValue { }
352+ protocol SwiftSetValue : SetValue { }
353+ extension Set : SwiftSetValue { }
354+
356355protocol StringValue { }
357356extension String : StringValue { }
358357extension NSString : StringValue { }
0 commit comments