C# iPhone开发与Objective-C iPhone开发

4

哪种语言更适合iPhone应用程序开发?通常使用Objective C进行iPhone应用程序开发。但是,monotouch支持使用C#进行iPhone开发。

在此之前,我没有使用过C#和Objective C进行任何应用程序开发。因此,我对这两种语言都很陌生。请给我关于iPhone应用程序开发的建议... :)


1
你之前用过哪些编程语言?你应该查找一些代码示例,看看哪种语言让你感觉最舒适。Objective-C很像Apple Talk,在函数之间发送“消息”。如果你之前使用过Java或类似的语言,我建议你选择C#。这里有一个链接,供那些习惯于C#的人使用:https://dev59.com/UXE85IYBdhLWcg3wmExW - NoLifeKing
在我开发j2me、黑莓和安卓应用之前。 - bharath
1
这是一个链接,指向一个人花时间做了Java和C#的比较的网页:http://www.25hoursaday.com/CsharpVsJava.html。由于你之前使用过j2me,我建议你查找一些C#的示例代码。虽然可能没有很多教程,正如其他回答所说,但如果你在monotouch论坛上询问,他们可能会给你一个好的答案。 - NoLifeKing
6个回答

5

这是我个人的看法:

我已经在.NET领域工作了一段时间。当iPhone推出创建本地应用程序的功能时,它引起了我的注意。我真的尝试学习Objective-C。我读了2本书,开始尝试了一个月左右,然后因为你必须做大量在.NET中只需要一行代码的事情而离开了iPhone编程。

当Miguel de Icaza推出MonoTouch时,我尝试了一下,并意识到我以前完成的大部分代码都是完全功能的。我总是试图将UI代码与业务代码分离,这确实是.NET在iPhone上的重点-将大部分已完成的业务逻辑带到设备上。

此外,在Objective-C上,您不会找到任何类似于LINQ或var关键字的东西。在MonoTouch上使用Web服务只需点击几下即可。

如果您想针对Android平台进行目标设置,则还有MonoDroid(monodroid.net)。另外,如果您想针对Mac OSX进行目标设置,则有MonoMac。因此,您可以在这3个平台之间共享类库而不会遇到太多麻烦。更不用说,它也可以在Windows上工作,反之亦然(可能时)。

您唯一需要担心的是UI,但是大多数业务逻辑应该可以正常工作。

这是MonoTouch支持的完整.NET程序集列表:http://monotouch.net/Documentation/Assemblies。此外,MonoTouch向所有CocoaTouch API公开了C#/CIL绑定。

另外,MonoTouch团队的支持非常棒。您只需进入IRC,提出问题,就会立即得到答复。他们也有邮件列表。:)

我真的很喜欢MonoTouch。我知道没有一种语言适用于所有任务,Objective-C也不例外。


4
如果你使用c#和monotouch,相比Objective-C,文档要少得多,因为大多数iPhone应用程序都是用Obj-C开发的。如果你对这两种语言都不熟悉,我建议选择Obj-C,因为有大量来自苹果和人们博客的在线教程、示例代码和文档。同时,也有更多的书籍可供购买,用于Obj-C iPhone开发。
当然,你还需要考虑一下,是否认为c#比Obj-C更容易学习,以及是否足够弥补样本数量的巨大差异。
最终,选择哪种语言取决于你的个人偏好。

3

取决于您的需求和想法。如果您完全是新手,可能会发现直接跳入Objective C是更好的解决方案。

然而,这个问题是相当开放的,没有真正的答案,可以尝试两种方法,看看哪种方法最适合您。


1

如果您从未使用过这两种语言,我建议使用苹果的XCode并学习Objective C,因为这是苹果支持的语言。此外,成本会更低。


1

既然你以前没有使用过C#或Objective-C,我建议你选择原生方式。在这种情况下,跟随大多数iOS开发人员实际上是一个好主意:

  • Apple文档非常好(在我看来比Android的更好),甚至可以参加在线课程(可以搜索CS193-Stanford的iPhone应用程序开发课程);
  • 有许多关于Objective-C的好书籍(比如Kochan的经典著作“Programming in Objective-C”),以及关于iPhone开发的书籍(所有我知道的书都使用Objective-C);
  • iOS开发拥有庞大的社区愿意分享知识(就像在StackOverflow这里一样),因此你的学习曲线在开始时可能会很陡峭,但是你将比尝试解决某些C#问题更快地学到有用的东西(这是我的假设);

请注意:我从未尝试过monotouch / C#组合,但我仍然相信选择使用Obj-C进行本地化处理是一个更明智的选择。


-3

要么本地化,要么别费劲了。苹果支持Objective-C,不支持C#。


3
你应该总是按照苹果公司的要求去做... - NicoGranelli

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接