《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 業(yè)界動(dòng)態(tài) > 在 Visual Studio中 將 Objective-C 編譯為 C++

在 Visual Studio中 將 Objective-C 編譯為 C++

2015-09-18
關(guān)鍵詞: VisualStudio C

  曾有人謠傳微軟 Windows 10 平臺(tái)將支持運(yùn)行 Android 程序,沒(méi)有人會(huì)預(yù)料到 iOS 應(yīng)用也將得到同樣的支持。目前,微軟正結(jié)合 C2 和 Clang 使之變?yōu)榭赡堋?br/>  編譯器支持
  谷歌和蘋果都使用 Clang 作為他們的 C++ 前端,微軟將 Clang 與 Visual C++ 編譯器的后端 C2 結(jié)合,以此來(lái)支持在 Windows 上運(yùn)行 Android 和 iOS 程序。
  蘋果的 Objective-C 同樣使用 Clang 作為前端,所以一旦 Clang 與 C2 整合完成,他們也將獲得解析并編譯 Objective-C 的能力。
  IDE 支持
  Visual Studio 中的 Objective-C 支持語(yǔ)法高亮、代碼補(bǔ)全、和代碼調(diào)試功能。C++和 C# 文件可以被引入到相同的項(xiàng)目中,允許程序直接跨邊界調(diào)用。編譯器將處理所有封送工作,所以開發(fā)者只會(huì)看到普通的函數(shù)調(diào)用。
  大多數(shù) Objective-C 項(xiàng)目都以建立 XCode 項(xiàng)目開始,所以 Visual Studio 將支持導(dǎo)入 XCode 項(xiàng)目,VS 和 XCode 項(xiàng)目文件可在混合模式項(xiàng)目中共存,因此可以在兩種 IDE 中同時(shí)開發(fā)這個(gè)項(xiàng)目。
  混合模式項(xiàng)目
  Windows 為 Objective-C 應(yīng)用提供了新的 API,例如:動(dòng)態(tài)磁貼。為了確??梢岳^續(xù)在平臺(tái)間共享代碼,微軟允許你在調(diào)用 Windows API 前通過(guò)運(yùn)行時(shí)檢查它們是否可用?;蛘撸?你可以使用預(yù)處理器指令顯式地隔離平臺(tái)特定代碼與共享代碼。
  運(yùn)行時(shí)行為
  Windows 的 Objective-C 運(yùn)行時(shí)默認(rèn)通過(guò)檢測(cè)應(yīng)用原始平臺(tái)來(lái)決定具體行為。舉個(gè)例子:如果你移植某個(gè) iPhone 應(yīng)用,那么它將默認(rèn)運(yùn)行在一個(gè)小窗口中,而從 iPad 移植的應(yīng)用將默認(rèn)運(yùn)行在常規(guī)大小的窗口中。
  所有這樣的行為可以在需要時(shí)被應(yīng)用覆蓋。
  iOS API 兼容性
  Windows 10 支持 iOS API 的一個(gè)“合理子集”,它不會(huì)對(duì)應(yīng)于 iOS 的某個(gè)版本,而是通過(guò)查看指標(biāo)來(lái)尋找最常用的 API。在第一個(gè)版本中,微軟將關(guān)注以下 API:
  游戲:對(duì) OpenGL、OpenAL 和傳感器提供良好的支持
  UI:UIKit、核心動(dòng)畫、核心圖形、核心文字、觸控
  Objective-C:自動(dòng)引用計(jì)數(shù)、代碼塊、Foundation 框架
  對(duì)于像分享、消息提示、存儲(chǔ)組件這樣的功能,開發(fā)者需要選擇是繼續(xù)使用 iOS API,還是切換到 Windows 替代解決方案。如果你選擇繼續(xù)使用 iOS API,Windows 將提供一個(gè)兼容層來(lái)支持 API 正常運(yùn)行;當(dāng)然,微軟更希望你使用他們提供的解決方案,這樣你就可以訪問(wèn)高級(jí) Windows 特性。
  Swift
  對(duì)于 Swift,微軟官方的立場(chǎng)是“暫不評(píng)論”。而在私下交流中,他們透露出支持 Swift 的意愿,但由于要在秋天到來(lái)前忙于準(zhǔn)備 Objective-C,以致于沒(méi)有資源可以提供給 Swift。

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。