rt,objective-c 用了一年左右了,感觉方法签名比 c/C++ 啰唆多了
而且,objective-c 的 BOOL 也有点儿蛋疼(参见《objectivec-c基础教程》),完全没有 c/c++ 的便利
一言以蔽之,如果是 c 是 c++、objective-c 的爸爸,那么这二兄弟,我还是觉得 c++ 表现更加优秀一些~另:
有时候我都觉得是否有必要纠结一个方法到底应该声明为静态方法还是对象方法
但当我回溯到许久不用的 c以后,我发现,原来二者之间并没有明显的区别
请教一个问题:
一个既可以声明为静态方法又可以声明为对象方法的方法,怎么做效率更高一点儿?
(这也是我觉得面向对象所带来的弊端之一,如果没有对象的概念,
那么它就是一个函数,哪用去管到底是做成静态方法还是对象方法?)欢迎各种拍砖啊,或者是大家也觉得 objective-c 有什么不好的 地方,也给不吝啬地列出来看一下啊

解决方案 »

  1.   

    xcode 确实还比较好用,如果快捷键上能多学习下 eclipse 的话就更好了,比较遗憾的是 Xcode 不支持 commad + D 删除一行代码的快捷键,当然,还有不少编辑的快捷键咯。。
    再个就是感觉eclipse 的回到上一个编辑点位的功能比较好用,不过在 XCode 里面没有知道,不知道是否有做支持~
      

  2.   


    objective-c 基本上兼容C++,而且,objective-c有很多C++所没有的特性。
    你说。
      

  3.   

    - -、
    首先我想问,是什么让你笑的比猴子还疯狂?然后,进入主题:
    objective-c 是兼容 c/c++,也有很多 c++ 没有的特性
    诸如引用计数、属性声明、自释放、包括最近的 arc 引用计数自动管理,etc。
    但我想问,这又能说明什么呢?谁能没几个自己独有的特性?
    在编写跨平台代码的时候,主张能不用 oc 尽量不用的又有多少人?
    我觉得你还是得拿出点儿实际的依据出来~
      

  4.   

    objc的方法名是长了点,不过在很多时候还是有意义的,可以通过方法名更好地理解方法的用途,参数配置。
    另外方法本来就是作用于某个对象上的函数,只不过提供了默认的对象而已
    c++的问题是太万能,当然也就太复杂,想要全面理解c++很难,像引用计数,block之类的都可以用c++实现
    跨平台用objc不是不能,而是没必要,虽然他确实能,但其他的选择更好,主要是基于其他语言的库很多。
    查了一下,xcode确实没有快捷键删除一行,不过可以组合ctrl+A+K+K,虽然这个已经很不快捷了
      

  5.   

    其实刚开始用 objective-c 独特语法的时候还是蛮新奇的
    不过接触久了以后,通过对比,还是能感觉到各门语言之间的不同之处
    哪个好,哪个坏什么的,我之所以有这个感慨,
    是因为我们队伍里面的其他伙计用嵌套不停的套,一层又一层,
    我又得去看他的代码,是在是弄得脑袋很疼,
    其实我自己还是控制的蛮好的,一行代码的长度做了比较严格的控制,绝不会超过一个屏幕
    这种情况下,我发现用 c 函数的书写格式,能做出行长度的很好控制。
    其实你说有时候蛮有意义,这个确实,但有时候两三个参数不算多,
    即时在函数的头部阐明传入参数的含义,我觉得这么来用也有存在的实际意义。
    另,这个快捷键不错,感谢~
      

  6.   

    那样感觉不是很美观,还是 c 风格的比较好看
    刚刚开了一下 http://www.csdn.net/article/2012-08-13/2808530#%23%23
    有人评论说:“实在想象不出,obj-c哪里好了。论语法,奇怪不说,让人迷惑的地方也不少。
    类里面的成员变量,如果通过synthesize定义,则可以使用语法糖xx.mxx但事实上呢,也可以xx->mxx 更奇葩的是,这个xx是一个*。 虽然大家都知道xx.mxx是语法糖。但是这尼玛不是脱裤子放屁?
    还有就是,动不动就是检索,消息发送是,子父类的关系,类对象的关系等等等等,我实在不像知道您用了多么高效的汇编来实现这个运行时,但是我知道一点,他所耗的内存,以及效率绝对比c,c++高无数多个等级,至少我写每一行代码都是这样觉得的。
    你用c,总能清晰的看到每一句背后的消耗。像oc这种层次的所谓的面向对象真的需要吗?c就完全能胜任了,c++就更不用说了。”objective-c 的排名飙升让我有些担忧,感觉就是,抢着碗饭的人太多了,结果就是每个人都吃不饱~
      

  7.   

    xx.mxx 不等于 xx->mxx,前者是accessor,后者是直接变量操作。
    另外谈及效率,应该从不同的角度来看,过去之所以更强调语言的执行速度,内存等等是因为硬件环境所限。现在主要考虑的还是人的因素,编码更快,更容易维护才是最重要的,执行效率已经不像当年要求那么严格了
      

  8.   

    一个既可以声明为静态方法又可以声明为对象方法的方法,怎么做效率更高一点儿?方法声明为静态了,我觉得就不算对象方法了
    你可以看看一个对象的静态方法里的 self 和 super 值是否一样
      

  9.   

    我的确有点讨厌ojbc的 [] ....实在太多了....