File tree 2 files changed +18
-5
lines changed
2 files changed +18
-5
lines changed Original file line number Diff line number Diff line change @@ -541,13 +541,16 @@ extension Bool : _ObjectiveCBridgeable {
541
541
}
542
542
543
543
public static func _conditionallyBridgeFromObjectiveC( _ x: NSNumber , result: inout Bool ? ) -> Bool {
544
- if x. intValue == 0 || x. intValue == 1 {
545
- result = x. boolValue
544
+ if x === kCFBooleanTrue || NSNumber ( value: 1 ) == x {
545
+ result = true
546
+ return true
547
+ } else if x === kCFBooleanFalse || NSNumber ( value: 0 ) == x {
548
+ result = false
546
549
return true
547
- } else {
548
- result = nil
549
- return false
550
550
}
551
+
552
+ result = nil
553
+ return false
551
554
}
552
555
553
556
public static func _unconditionallyBridgeFromObjectiveC( _ source: NSNumber ? ) -> Bool {
Original file line number Diff line number Diff line change @@ -642,6 +642,16 @@ class TestNSNumberBridging : XCTestCase {
642
642
XCTAssertNotNil ( b3)
643
643
XCTAssertEqual ( b3, true )
644
644
645
+ let b4 = NSNumber ( value: 0.0 ) as? Bool
646
+ XCTAssertNotNil ( b4)
647
+ XCTAssertEqual ( b4, false )
648
+
649
+ let b5 = NSNumber ( value: 1.0 ) as? Bool
650
+ XCTAssertNotNil ( b5)
651
+ XCTAssertEqual ( b5, true )
652
+
653
+ XCTAssertNil ( NSNumber ( value: 0.25 ) as? Bool )
654
+ XCTAssertNil ( NSNumber ( value: 1.25 ) as? Bool )
645
655
XCTAssertNil ( NSNumber ( value: - 1 ) as? Bool )
646
656
XCTAssertNil ( NSNumber ( value: 2 ) as? Bool )
647
657
XCTAssertNil ( NSNumber ( value: Int8 . min) as? Bool )
You can’t perform that action at this time.
0 commit comments