Foundation overlay: add String.stringByApplyingTransform()

This API is new in OS X 10.11 and iOS 9.0.

rdar://20645458

Swift SVN r28257
This commit is contained in:
Dmitri Hrybenko
2015-05-07 06:54:15 +00:00
parent 94a3cf8142
commit 15a558f919
2 changed files with 34 additions and 0 deletions

View File

@@ -1468,5 +1468,13 @@ extension String {
try self._ns.writeToURL(
url, atomically: useAuxiliaryFile, encoding: enc)
}
@availability(iOS, introduced=9.0)
@availability(OSX, introduced=10.11)
public func stringByApplyingTransform(
transform: String, reverse: Bool
) -> String? {
return _ns.stringByApplyingTransform(transform, reverse: reverse)
}
}

View File

@@ -1583,6 +1583,32 @@ NSStringAPIs.test("writeToURL(_:atomically:encoding:error:)") {
}
}
NSStringAPIs.test("stringByApplyingTransform(_:reverse:)") {
if #available(OSX 10.11, iOS 9.0, *) {
if true {
let source = "tre\u{300}s k\u{fc}hl"
expectEqual(
"tres kuhl",
source.stringByApplyingTransform(
NSStringTransformStripDiacritics, reverse: false))
}
if true {
let source = "hiragana"
expectEqual(
"ひらがな",
source.stringByApplyingTransform(
NSStringTransformLatinToHiragana, reverse: false))
}
if true {
let source = "ひらがな"
expectEqual(
"hiragana",
source.stringByApplyingTransform(
NSStringTransformLatinToHiragana, reverse: true))
}
}
}
struct ComparisonTest {
let expectedUnicodeCollation: ExpectedComparisonResult
let lhs: String