![]() |
1
11
一。内存管理
我想说,最大的好处之一是Obj-C所需要的显式内存管理。至少,有一个垃圾回收器,但你必须在知情的情况下选择加入。我不能告诉你我用C有多少线程死锁和内存泄漏,因为我希望GC帮我完成工作。它教给我的是用C语言实现几乎所有的课程
2。消息发送与“方法”的概念不同,“消息传递”在我看来更为现实。你给一个对象发送一条消息,告诉它该做什么。它主要是语义,但它可以在设计类的方式上起到所有的作用。 三。消息语法有些人认为obj-c消息的冗长风格是一个缺点,但我个人喜欢它。我可以查看一行代码,立即知道所有参数的用途,而无需查阅元数据。它的结构就像句子中的Ruby,只是不够简洁。例如,对于陌生人来说,查看一个类是否是另一个类的子类是很容易理解的:
此外,这种冗长的语法开始使您真正考虑如何设计您的程序,以便最大限度地减少累积的cruft数量。我觉得我在objective-C上的课比在C#上的小得多,更有目的性。构建充满方法的巨型超级类并不容易。所以,它促进了好的设计。 四。部署当一个主要用于部署软件的技术存在工作时,就会出现问题。作为一个开发人员,我应该能够通过点击一个按钮来干净地打包一些东西,并准备好供我的客户使用。C#是一场噩梦,虽然这很大程度上与Windows相对于OSX的构建方式有关,但他们可以从苹果那里学到很多东西。使用XCode进行打包是轻而易举的事。它不是一个语言特性,但是当需要实际部署您所写的内容时,它会带来所有的不同。花时间编写好的软件,而不是制作安装程序。 5个。界面生成器同样,这并不是一个真正的语言特性,而是一个IDE特性,但它应该包括在内。Interface Builder从上到下提升MVC。通过设计,表示逻辑与控制器或模型逻辑完全分离。另外,它非常容易使用。 |
![]() |
2
2
Objective C是ansic的纯超集,因此您可以移植和重用大量为Linux/Unix编写的C库代码、模拟器、数字库等。 目标C也是非托管的,因此您可以访问和优化内存中的位以获取心脏内容,如果您试图最小化每个字节和耗电处理器周期,这将非常有用。内存管理也是显式的,它允许一个称职的程序员在不浪费处理器周期的情况下最小化内存使用,从而通过垃圾收集降低效率。基本上,你可以学习如何开发能在小型便携设备上提供更好电池寿命的代码。 |
![]() |
3
0
如果你知道并喜欢C#只需转到Iphone的Mono(http://monotouch.net/)。 |