UnsafePointer

// UnsafePointer// 對于底層 C API 進行轉化的時候,Swift會轉換成 UnsafePointer的類型/* 比如下面的一個 C 函數,轉換為 Swift的方法應該是void method(const int *num){? ? print("%d", *num)} */func method(_ num: UnsafePointer) {

print(num.pointee)

// swift 1.0 2.0 num.memory

// swift 3.0寫法? num.pointee

}

/*

UnsafePointer 就是Swift中專門針對指針的轉換。

對于其他 C 中的基礎類,在Swift 中對應的類型都遵循統一的命名規則,在前面加一個字幕 C

如 CInt, CBool, CChar

上面的 C 函數指明了輸入的 num 指針的不可變 (const), 因此在 Swift中對應 UnsafePointer 這個不可變版本,

普通的版本,對應的是, UnsafeMutablePointer

*/

// C 示例

/*

int a = 123

method(&a);? // 輸出 123

*/

// Swift 示例

var a : CInt = 123

method(&a)? // 輸出 123

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1、隨機數 不需要隨機數種子 arc4random()%N + begin:產生begin~begin+N的隨機數...
    我是小胡胡123閱讀 4,195評論 0 2
  • Swift2.0 1.defer譯為延緩、推遲之意類似棧 注意作用域,其次是調用順序——即一個作用域結束(注意),...
    zeqinjie閱讀 3,398評論 0 50
  • 2014年的蘋果全球開發者大會(WWDC),當Craig Federighi向全世界宣布“We have new ...
    yeshenlong520閱讀 2,309評論 0 9
  • Swift 介紹 簡介 Swift 語言由蘋果公司在 2014 年推出,用來撰寫 OS X 和 iOS 應用程序 ...
    大L君閱讀 3,271評論 3 25
  • 夜半的心慌 止不住的思量 落滿酒的愁腸 和撒失眠的謊 遮卻的月光 碎的肝臟 丟掉的悲傷 和找不到的花 凌晨的合唱 ...
    人不交閱讀 150評論 2 3