问候语, 我是C#程序员。我打算开始为iphone开发应用程序,但我不确定是否应该在MonoTouch下使用C#,或者只使用iphone OS Objective C的本地语言。
使用C#或Objective C的iphone应用程序有不同的程序吗?
使用C#为iphone编程应用程序是否存在限制,或者它可以像Objective C那样开发iphone应用程序吗?
答案 0 :(得分:12)
MonoTouch包含大多数但不包括所有iPhone SDK。所以,是的,有些东西是你还不能做的,但它们相对较少,而且相差甚远。
许多.Net人发现他们使用MonoTouch更有效率(至少在最初阶段),因为他们可以利用他们现有的技能。另一方面,没有什么比用这种土地的母语工作,只需要更长的时间。您将不得不学习一些Objective-C,因为世界上大多数文档都使用它(和/或C级CoreFoundation API)。 Objective-C的动态性质一开始会让人觉得陌生,但是一旦你完全理解它,你会发现它很自由。在我的职业生涯中使用过多种语言后,我发现Objective-C(以及Cocoa API)是最愉快的开发体验之一。
答案 1 :(得分:10)
这是一个Monotouch开发人员的答案,而不是一些猜测人们浏览博客的工作。
您是否购买了Monotouch许可证?如果没有那么明确客观-C将是首选。如果你已经购买了许可证,那么在Monotouch中开发应用程序是有意义的,因为:
static void main
可以非常轻松地转换为objective-C。名称都相同,但在Pascal案例中。就应用程序而言 - 到目前为止,Apple已经让Monotouch应用程序通过了。我并不是说他们不会突然说“不!你应该使用目标-C”,但是对于他们在像Stackoverflow这样的高端网站上禁止SO iPhone客户端将是糟糕的公关。
Apple在他们的演示中使用应用程序打破了他们自己的SDK(Tap Tap Revolution就是其中之一),并且十分之一的appstore畅销游戏使用了非客观C的健康部分。Monotouch 直接映射到Cocoa和UIKit 。你需要有一个mac来使用编译器和IDE。据我所知,Flash没有这样的限制,它的UI在强制UINavigationController,UITabViewController,UIAlertView等常见的“widget”设置方面要严格得多。
答案 2 :(得分:6)
这是我的看法:如果你生活中绝对没有见过Obj-C代码,那么需要一点时间来适应它。将SDK与完全不同的事实放在一起,你将不得不学习每一种新方法,如果你努力学习,你可能需要至少几个月的时间才能成为一名普通的开发人员
相反,使用MonoTouch并使用C#学习整个SDK。在几周内,您将感到宾至如归,所有课程,Interface Builder等。您将能够以与Obj-C相同的方式开发应用程序,但在C#中。演示版允许您免费使用所有内容。
然后你决定做什么。取决于Apple的整个问题如何,您可能决定继续使用MonoTouch,或者您可能决定学习Obj-C,并且基本上使用您已经获得的关于SDK的所有知识,这将使转换更容易
答案 3 :(得分:2)
关于Apple是否允许这样做,存在一些争论。从表面上看,它似乎不是:
在新版iPhone中 开发者计划许可协议 今天由Apple发布(以及哪些 开发者必须先同意 下载4.0 SDK测试版),部分 3.3.1现在读取:
3.3.1 - 应用程序只能以这种方式使用Documented API Apple规定,不得使用 或致电任何私人API。应用 必须最初写在 Objective-C,C,C ++或JavaScript as 由iPhone OS WebKit执行 引擎,只有用C编写的代码, C ++和Objective-C可以编译和 直接链接到Documented API(例如,链接到的应用程序) 通过标记的API 中介翻译或 兼容层或工具 禁用)。