File tree Expand file tree Collapse file tree 3 files changed +411
-168
lines changed Expand file tree Collapse file tree 3 files changed +411
-168
lines changed Original file line number Diff line number Diff line change @@ -622,6 +622,34 @@ open class NSNumber : NSValue {
622
622
fatalError ( " unsupported CFNumberType: ' \( numberType) ' " )
623
623
}
624
624
}
625
+
626
+ internal var _swiftValueOfOptimalType : Any {
627
+ if self === kCFBooleanTrue {
628
+ return true
629
+ } else if self === kCFBooleanFalse {
630
+ return false
631
+ }
632
+
633
+ let numberType = _CFNumberGetType2 ( _cfObject)
634
+ switch numberType {
635
+ case kCFNumberSInt8Type:
636
+ return Int ( int8Value)
637
+ case kCFNumberSInt16Type:
638
+ return Int ( int16Value)
639
+ case kCFNumberSInt32Type:
640
+ return Int ( int32Value)
641
+ case kCFNumberSInt64Type:
642
+ return int64Value < Int . max ? Int ( int64Value) : int64Value
643
+ case kCFNumberFloat32Type:
644
+ return floatValue
645
+ case kCFNumberFloat64Type:
646
+ return doubleValue
647
+ case kCFNumberSInt128Type:
648
+ return int128Value
649
+ default :
650
+ fatalError ( " unsupported CFNumberType: ' \( numberType) ' " )
651
+ }
652
+ }
625
653
626
654
deinit {
627
655
_CFDeinit ( self )
You can’t perform that action at this time.
0 commit comments