緩衝指標的實際用例
解構在 Swift 庫方法中使用不安全的指標;
public init?(validatingUTF8 cString: UnsafePointer<CChar>)
目的:
通過複製和驗證給定指標引用的以 null 結尾的 UTF-8 資料來建立新字串。
此初始化程式不會嘗試修復格式錯誤的 UTF-8 程式碼單元序列。如果找到任何,初始化程式的結果是 nil
。下面的示例使用指向兩個不同 CChar
陣列的內容的指標呼叫此初始化程式 - 第一個具有格式良好的 UTF-8 程式碼單元序列,第二個在結尾處具有格式錯誤的序列。
Source , Apple Inc.,Swift 3 標頭檔案 (For header access:In Playground,Cmd +單擊 Swift 一詞)程式碼行:
import Swift
let validUTF8: [CChar] = [67, 97, 102, -61, -87, 0]
validUTF8.withUnsafeBufferPointer { ptr in
let s = String(validatingUTF8: ptr.baseAddress!)
print(s as Any)
}
// Prints "Optional(Café)"
let invalidUTF8: [CChar] = [67, 97, 102, -61, 0]
invalidUTF8.withUnsafeBufferPointer { ptr in
let s = String(validatingUTF8: ptr.baseAddress!)
print(s as Any)
}
// Prints "nil"
(Source,Apple Inc.,Swift Header File Example)