閱讀47 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Objective-C與Objective-C++的混用代碼示例

很多已經熟悉C/C++的朋友在初次使用Objective-C作為開發語言時不是很習慣,不過objective-C/C++本身又是幾乎完全兼容GNU C/C++的。
這裏作為一個代碼實例來描述Objective-C與objective-C++如何混合使用。其實這就同C與C++如何混用一樣,還是非常容易上手的。
不 過,為了能夠更好地看清這一混合優勢。項目中使用了objective-C/C++一個非常強大的語法——Category(類別,或範疇)對原有的類 Sample進行擴展,衍生出一個accumulateValue這個成員方法。這個方法的實現放在一個.mm文件中(.m文件表示objective- C源文件,.mm表示objective-C++源文件),並且通過一個模板函數來實現。
這段代碼看上去比較複雜,不過這僅僅作為一個樣例而已。模板函數的功能是將Sample類的一個對象的value值不斷累加。
比如:初始值為1,那麼迭代一次就是2;再迭代一次就是4。每次迭代都是自己與自己相加。
在accumulateValue方法的實現中,使用AccumulateValue<sizeof(self.value)>(self);表示在32位係統下迭代4次;在64位係統下迭代8次。

代碼下載地址:https://dl.dbank.com/c0pzbnnx7a

轉自iOS分享網https://iosshare.cn


最後更新:2017-04-02 15:14:44

  上一篇:go iPhone 開發過程中的一些小技術的總結
  下一篇:go Java斷點續傳服務器代碼