Skip to content

Commit 8ad7b83

Browse files
committed
Merge pull request #84 from thii/nsstring-integervalue
[NSString] Add implementation of `integerValue` and tests
2 parents 3890043 + 488de72 commit 8ad7b83

File tree

2 files changed

+31
-1
lines changed

2 files changed

+31
-1
lines changed

Foundation/NSString.swift

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -463,7 +463,10 @@ extension NSString {
463463

464464
public var integerValue: Int {
465465
get {
466-
NSUnimplemented()
466+
let scanner = NSScanner(string: _swiftObject)
467+
var value: Int = 0
468+
scanner.scanInteger(&value)
469+
return value
467470
}
468471
}
469472

TestFoundation/TestNSString.swift

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ class TestNSString : XCTestCase {
2323
return [
2424
("test_boolValue", test_boolValue ),
2525
("test_BridgeConstruction", test_BridgeConstruction ),
26+
("test_integerValue", test_integerValue ),
2627
("test_isEqualToStringWithSwiftString", test_isEqualToStringWithSwiftString ),
2728
("test_isEqualToObjectWithNSString", test_isEqualToObjectWithNSString ),
2829
("test_isNotEqualToObjectWithNSNumber", test_isNotEqualToObjectWithNSNumber ),
@@ -68,6 +69,32 @@ class TestNSString : XCTestCase {
6869
XCTAssertEqual(cluster.length, 3)
6970
}
7071

72+
func test_integerValue() {
73+
let string1: NSString = "123"
74+
XCTAssertEqual(string1.integerValue, 123)
75+
76+
let string2: NSString = "123a"
77+
XCTAssertEqual(string2.integerValue, 123)
78+
79+
let string3: NSString = "-123a"
80+
XCTAssertEqual(string3.integerValue, -123)
81+
82+
let string4: NSString = "a123"
83+
XCTAssertEqual(string4.integerValue, 0)
84+
85+
let string5: NSString = "+123"
86+
XCTAssertEqual(string5.integerValue, 123)
87+
88+
let string6: NSString = "++123"
89+
XCTAssertEqual(string6.integerValue, 0)
90+
91+
let string7: NSString = "-123"
92+
XCTAssertEqual(string7.integerValue, -123)
93+
94+
let string8: NSString = "--123"
95+
XCTAssertEqual(string8.integerValue, 0)
96+
}
97+
7198
func test_isEqualToStringWithSwiftString() {
7299
let string: NSString = "literal"
73100
let swiftString = "literal"

0 commit comments

Comments
 (0)