Objective-C:高级语言?

时间:2009-10-06 13:45:28

标签: iphone objective-c cocoa

到目前为止,我已经设法避免使用C和C ++(除了一些HelloWorlds),而是使用更高级别的语言。我曾经工作过VB6,然后是Java,然后是C#,然后是ActionScript,现在是Ruby。

我最近对IPod Touch / IPhone的编程感到好奇。虽然我已经看到了避免ObjectiveC的一些可能性(如Mono for IPhone),但我对Objective C感到好奇。主要是:需要开发人员来处理垃圾收集和管理指针有点事吗?

编辑:我完全接受我的高级和低级语言概念不正确或误导的可能性。

4 个答案:

答案 0 :(得分:10)

垃圾收集:是的,但不如C或C ++差。一旦你理解了Objective-C垃圾收集,它就很容易了。学习或掌握它也不需要那么长时间。

就指针而言 - 你将使用指针远远少于在C或C ++中使用指针。是的,关于指针的一些知识很有用(知道声明NSString *NSString之间的区别),但这也不是那么复杂。

就个人而言,我会避免出现在iPhone开发中出现的所有“更高级”语言。它们实际上只消除了学习Objective-C的需要,但仍然迫使您使用本机框架(Cocoa Touch)。它们增加了懒惰的复杂性。 Objective-C可以在一周内学习,调试框架的细微差别需要更长的时间。但话说回来,这只是我的意见。

修改

如果没有正确完成,C#内存管理也会很痛苦。是的,有很多垃圾收集器适用于很多情况。但是,还有一些对象需要处理,而不正确处理它们会导致内存泄漏。如果您不能100%确定Disposing序列的顺序,那么创建自己的IDisposable对象也会很棘手。我见过很多开发人员错误的项目。基本上我所说的是Objective-C内存管理并不比C#/ .NET中的Dispose链更复杂或更技术难度

答案 1 :(得分:4)

Objective-C有垃圾收集,但iPhone没有,i。即如果你为iPhone编写软件,你必须自己处理内存,但这不是一般的Objective-C问题。

答案 2 :(得分:1)

“主要是:需要开发人员来处理垃圾收集和管理指针等等吗?” - 在iPhone上,是的。

答案 3 :(得分:1)

它不像C#和Java,IMO那样“高级”,但它仍然被认为是高级语言,就像C ++一样,是的,C。

Objective C确实有垃圾收集,但iPhone对象C没有。