Objective-Cunichar
で Swift のような型変数を定義する方法は?'\0'
'\n'
スイフトでは、
func previousCharacter() -> unichar {
return "\n" //Error
}
コンパイラは私にエラーを与えました:
タイプ 'String' の戻り式を予期される戻りタイプ 'unichar' に変換できません
しかし、Objective-C では、これを直接行う方が簡単です。
Swift では、文字リテラルの型はCharacter
です。
let exclamationMark: Character = "!"
文字列と文字を参照してください
上級者向け:
unichar
文字リテラルを受け入れる機能を拡張することもできます。
extension unichar : UnicodeScalarLiteralConvertible {
public typealias UnicodeScalarLiteralType = UnicodeScalar
public init(unicodeScalarLiteral scalar: UnicodeScalar) {
self.init(scalar.value)
}
}
let newLine: unichar = "\n"
let whitespaces = NSCharacterSet.whitespaceAndNewlineCharacterSet()
print("C is whitespace \(whitespaces.characterIsMember(newLine))")
ただし、Swift のリテラルは 4 バイトをunichar
使用するのに対し、 は 2 バイトしか使用しないことに注意してくださいunichar
。