1

Objective-Cunicharで Swift のような型変数を定義する方法は?'\0' '\n'

スイフトでは、

func previousCharacter() -> unichar {
    return "\n"     //Error
}

コンパイラは私にエラーを与えました:

タイプ 'String' の戻り式を予期される戻りタイプ 'unichar' に変換できません

しかし、Objective-C では、これを直接行う方が簡単です。

4

1 に答える 1

2

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

于 2015-06-15T08:05:25.120 に答える