14
14
import CoreGraphics
15
15
16
16
extension Int8 : _ObjectiveCBridgeable {
17
- @available ( swift, deprecated: 4 )
17
+ @available ( swift, deprecated: 4 , renamed : " init(truncating:) " )
18
18
public init ( _ number: NSNumber ) {
19
19
self = number. int8Value
20
20
}
@@ -55,7 +55,7 @@ extension Int8 : _ObjectiveCBridgeable {
55
55
}
56
56
57
57
extension UInt8 : _ObjectiveCBridgeable {
58
- @available ( swift, deprecated: 4 )
58
+ @available ( swift, deprecated: 4 , renamed : " init(truncating:) " )
59
59
public init ( _ number: NSNumber ) {
60
60
self = number. uint8Value
61
61
}
@@ -96,7 +96,7 @@ extension UInt8 : _ObjectiveCBridgeable {
96
96
}
97
97
98
98
extension Int16 : _ObjectiveCBridgeable {
99
- @available ( swift, deprecated: 4 )
99
+ @available ( swift, deprecated: 4 , renamed : " init(truncating:) " )
100
100
public init ( _ number: NSNumber ) {
101
101
self = number. int16Value
102
102
}
@@ -137,7 +137,7 @@ extension Int16 : _ObjectiveCBridgeable {
137
137
}
138
138
139
139
extension UInt16 : _ObjectiveCBridgeable {
140
- @available ( swift, deprecated: 4 )
140
+ @available ( swift, deprecated: 4 , renamed : " init(truncating:) " )
141
141
public init ( _ number: NSNumber ) {
142
142
self = number. uint16Value
143
143
}
@@ -178,7 +178,7 @@ extension UInt16 : _ObjectiveCBridgeable {
178
178
}
179
179
180
180
extension Int32 : _ObjectiveCBridgeable {
181
- @available ( swift, deprecated: 4 )
181
+ @available ( swift, deprecated: 4 , renamed : " init(truncating:) " )
182
182
public init ( _ number: NSNumber ) {
183
183
self = number. int32Value
184
184
}
@@ -219,7 +219,7 @@ extension Int32 : _ObjectiveCBridgeable {
219
219
}
220
220
221
221
extension UInt32 : _ObjectiveCBridgeable {
222
- @available ( swift, deprecated: 4 )
222
+ @available ( swift, deprecated: 4 , renamed : " init(truncating:) " )
223
223
public init ( _ number: NSNumber ) {
224
224
self = number. uint32Value
225
225
}
@@ -260,7 +260,7 @@ extension UInt32 : _ObjectiveCBridgeable {
260
260
}
261
261
262
262
extension Int64 : _ObjectiveCBridgeable {
263
- @available ( swift, deprecated: 4 )
263
+ @available ( swift, deprecated: 4 , renamed : " init(truncating:) " )
264
264
public init ( _ number: NSNumber ) {
265
265
self = number. int64Value
266
266
}
@@ -301,7 +301,7 @@ extension Int64 : _ObjectiveCBridgeable {
301
301
}
302
302
303
303
extension UInt64 : _ObjectiveCBridgeable {
304
- @available ( swift, deprecated: 4 )
304
+ @available ( swift, deprecated: 4 , renamed : " init(truncating:) " )
305
305
public init ( _ number: NSNumber ) {
306
306
self = number. uint64Value
307
307
}
@@ -342,7 +342,7 @@ extension UInt64 : _ObjectiveCBridgeable {
342
342
}
343
343
344
344
extension Int : _ObjectiveCBridgeable {
345
- @available ( swift, deprecated: 4 )
345
+ @available ( swift, deprecated: 4 , renamed : " init(truncating:) " )
346
346
public init ( _ number: NSNumber ) {
347
347
self = number. intValue
348
348
}
@@ -383,7 +383,7 @@ extension Int : _ObjectiveCBridgeable {
383
383
}
384
384
385
385
extension UInt : _ObjectiveCBridgeable {
386
- @available ( swift, deprecated: 4 )
386
+ @available ( swift, deprecated: 4 , renamed : " init(truncating:) " )
387
387
public init ( _ number: NSNumber ) {
388
388
self = number. uintValue
389
389
}
@@ -424,7 +424,7 @@ extension UInt : _ObjectiveCBridgeable {
424
424
}
425
425
426
426
extension Float : _ObjectiveCBridgeable {
427
- @available ( swift, deprecated: 4 )
427
+ @available ( swift, deprecated: 4 , renamed : " init(truncating:) " )
428
428
public init ( _ number: NSNumber ) {
429
429
self = number. floatValue
430
430
}
@@ -451,8 +451,24 @@ extension Float : _ObjectiveCBridgeable {
451
451
}
452
452
453
453
public static func _conditionallyBridgeFromObjectiveC( _ x: NSNumber , result: inout Float ? ) -> Bool {
454
- guard let value = Float ( exactly: x) else { return false }
455
- result = value
454
+ guard let value = Double ( exactly: x) else { return false }
455
+ guard !value. isNaN else {
456
+ result = Float . nan
457
+ return true
458
+ }
459
+ guard !value. isInfinite else {
460
+ if value. sign == . minus {
461
+ result = - Float. infinity
462
+ } else {
463
+ result = Float . infinity
464
+ }
465
+ return true
466
+ }
467
+ guard Swift . abs ( value) <= Double ( Float . greatestFiniteMagnitude) else {
468
+ return false
469
+ }
470
+
471
+ result = Float ( value)
456
472
return true
457
473
}
458
474
@@ -465,7 +481,7 @@ extension Float : _ObjectiveCBridgeable {
465
481
}
466
482
467
483
extension Double : _ObjectiveCBridgeable {
468
- @available ( swift, deprecated: 4 )
484
+ @available ( swift, deprecated: 4 , renamed : " init(truncating:) " )
469
485
public init ( _ number: NSNumber ) {
470
486
self = number. doubleValue
471
487
}
@@ -513,7 +529,7 @@ extension Double : _ObjectiveCBridgeable {
513
529
}
514
530
515
531
extension Bool : _ObjectiveCBridgeable {
516
- @available ( swift, deprecated: 4 )
532
+ @available ( swift, deprecated: 4 , renamed : " init(truncating:) " )
517
533
public init ( _ number: NSNumber ) {
518
534
self = number. boolValue
519
535
}
@@ -564,7 +580,7 @@ extension Bool : _ObjectiveCBridgeable {
564
580
}
565
581
566
582
extension CGFloat : _ObjectiveCBridgeable {
567
- @available ( swift, deprecated: 4 )
583
+ @available ( swift, deprecated: 4 , renamed : " init(truncating:) " )
568
584
public init ( _ number: NSNumber ) {
569
585
native = CGFloat . NativeType ( truncating: number)
570
586
}
0 commit comments