初学Objective-C,只是把它的语法粗略看了遍。
从语法本身来说,它有的东西,除了property和category外,C++都有,只是换了下表达方式。
最大的“创新”是它的内存管理:它用了手动的引用计数来管理对象内存的释放。
我在某篇文章中看到,那篇文章作者很喜欢这种方式,他认为既比垃圾收集高效,又不会像C++那样麻烦。
可是在我看来,这种手动的引用计数似乎没有比C++好到哪去,不用时也得执行一次release。更奇怪的就是要用另一个指针指向它时,编译器还不能自己去加一,必须手动写个retain。
反观C++,因为有很多约定俗成的习惯,不需要每次引用都去更改引用计数,只需要它的维护者(可能是创建者,也可能是使用者,但同时只会有1个是)在不用时delete它,其他的使用者完全无需关注。
当然,我也没拿它写过程序,所以只是自觉上这么认为,不知道@Livid有什么经验可以分享下?
从语法本身来说,它有的东西,除了property和category外,C++都有,只是换了下表达方式。
最大的“创新”是它的内存管理:它用了手动的引用计数来管理对象内存的释放。
我在某篇文章中看到,那篇文章作者很喜欢这种方式,他认为既比垃圾收集高效,又不会像C++那样麻烦。
可是在我看来,这种手动的引用计数似乎没有比C++好到哪去,不用时也得执行一次release。更奇怪的就是要用另一个指针指向它时,编译器还不能自己去加一,必须手动写个retain。
反观C++,因为有很多约定俗成的习惯,不需要每次引用都去更改引用计数,只需要它的维护者(可能是创建者,也可能是使用者,但同时只会有1个是)在不用时delete它,其他的使用者完全无需关注。
当然,我也没拿它写过程序,所以只是自觉上这么认为,不知道@Livid有什么经验可以分享下?