用Visual Studio将Objective-C编译为C++

编译器支持

谷歌和苹果公司都使用Clang作为它们的C++前端。为了使他们的代码运行在Windows上,微软不得不将Visual C++的后端C2和Clang结合起来。

(Clang是一个C语言、C++、Objective-C、Objective-C++语言的轻量级编译器,源代码发布于BSD协议下。译者注)

IDE支持

在Visual Studio中Objective-C具有语法高亮、代码完成和调试支持等功能。C++和C#文件可以包含在同一个项目中,允许程序来直接跨区域进行调用。编译器将处理所有的细节所以开发者只是看到正常的函数调用的封装处理。

大多数Objective-C项目都作为XCode项目而开始,所以Visual Studio提供了导入该项目类型的能力。VS和XCode项目文件可以存在于同一个项目中,这样你就可以在两种IDE对同一个项目进行开发。

混合模式项目

Windows提供了新的API给Objective-C,例如动态磁贴。为了确保代码可以继续在这两个平台之间共享,微软提供运行时检查来查看Windows API是否可以给很好的调用。或者,你可以使用预处理器指令从共享的代码中将特定平台的代码隔离出来。

运行时行为

默认情况下Windows下的Objective-C运行库检测到应用程序的原始平台来确定它的行为。例如,如果你提供一个iPhone应用程序然后它将默认在一个狭窄的窗口中运行,而iPad应用程序运行在一个正常的窗口中。

所有这些行为可由应用程序在需要时进行重写。

iOS API 兼容性

Windows 10支持iOS API的子集。它不会跟踪特定版本的iOS,但相反在标准中查看哪些APIs经常被使用。对于第一个版本,微软主要关注的APIs包括如下:

游戏:OpenGL,OpenAL以及传感器
UI:UIKit,CooreAnimation,CoreGraphics,CoreText,Touch
Objective-C:ARC,Blocks,Foundation

一些类如共享、通知和StoreKit的特性,开发者需要在保留iOS APIs以及使用Windows的替代方案之间进行选择。如果你选择保留iOS APIs,Windows将会提供一个兼容性层,这样的APIs将能够开始运作。而选择Windows的替代方案的好处在于你可以使用Windows的高级功能。

Swift

微软对于Swift的官方立场是“此时不做评论”。大概也就是说他们想要支持Swift但是目前太忙了,还要继续为Objective-C做准备,而秋天也许会宣布关于Swift的消息。



感谢您的访问,希望对您有所帮助。 欢迎大家关注、收藏以及评论。


为使本文得到斧正和提问,转载请注明出处:
http://blog.csdn.net/nomasp


posted @ 2015-06-02 21:55  nomasp  阅读(198)  评论(0编辑  收藏  举报