我做JAVA开发的,看到下面这个,甚感火星文!!!请大家帮我全部(包括符号)解释下,非常感谢!!!!![myArray insertObject:anObject atIndex:0];

解决方案 »

  1.   

    相当于java的  myArray.insertObjectAtIndex(anObject,0);
    语法形式不同而已。
      

  2.   

    [myArray insertObject:anObject atIndex:0];
    myArray 插入一个对象 anObject 在那个位置为0 的地方其实Objective C给对象发消息的语法源自Smalltalk 
    这个等价与java中  myArray[0] = anObject;其实Objective C这种语法有个好处, 给你看个例子:
    在窗口中绘制矩形的方法,如果是Objective C 会是这样:- (void) drawRectWithX:(float)x
                               andY:(float)y
                        andWidth:(float)width
                      andHeight:(float)height
    {
    }public void drawRect(float x, float y, float width, float height)
    {
    }这样好像还看不出好处,那么我分别调用一下两个,看看写法:
    Objective C:
    [obj drawRectWithX:10
                          andY:20
                   andWidth:90
                 andHeight:130];Java:
    obj.drawRect(10, 20, 90, 130);看看,java那个如果我不去看方法的声明,你能直接从调用的地方看出每个参数代表啥意义吗?如果你事先不知道drawRect函数的意思,你只看obj.drawRect(10, 20, 90, 130). 天知道10是啥意思,20又是啥意思,
    而Objective C呢,一目了然,10是X   20是Y  90是width  130是height    我写代码不加注释都可以(前提是你起的名字有意义一看便知),你慢慢想想看呢?
      

  3.   


    非常感谢您的耐心解答,问题似乎快要解决完了,但还有个问题比较困惑。[obj drawRectWithX:10
                          andY:20
                   andWidth:90
                 andHeight:130];
    以上代码,前提是obj对象已经实例化了,能有JAVA一样 new Test().printTest("test methods", false); 类似的写法吗?即:实例化Test后立即调用方法。[obj drawRectWithX:10
                          andY:20
                   andWidth:90
                 andHeight:130];
    以上写法,其中的andWidth等都是方法参数的别名(obj=对象,drawRectWithX方法别名,真正的名称是float x,不知对吗?),有个问题出来啦,即:方法写了4个参数,但调用的时候传入4个,那不用写方法名就能调用或第一个参数可以和方法名相同(可省略),或第一个无需写呢?
      

  4.   

    呵呵,我也是刚接触iOS开发,刚刚学Objective C,   看到那个代码,不仅甚感火星文,还甚感水星文。
      

  5.   

    [myArray insertObject:anObject atIndex:0];
    - (void)insertString:(NSString *)aString atIndex:(NSUInteger)loc;
    OC  语法,[] 代表函数的调用,myArray 的两个参数,一个是anObject ,一个是位置 0.