c中的指针我知道,保存的是变量的地址。但objective c 的对象指针显然不是这样。比如c的写法int *point;
*point=2;在objective c中就是这样NSNumber *point=[[NSNumber alloc] init];
point=2; //如果按照c指针来理解,这里就该是*point=2;虽然这个问题不影响平时编程,但始终是心里的一个疑问。objective cc

解决方案 »

  1.   

    跟JAVA差不多的引用吧
    OC里也可心这样:int a = 0;
    int *p = &a;
    *p = 3;
    printf("%d", a);
      

  2.   

    你的代码实际是c中的对象。oc中的对象的基类必须是NSObject或其派生类。
      

  3.   


    这个还是跟JAVA作比较好些,JAVA里的对象叫引用,但其实引用和指针都差不多。
    JAVA里的对象必须要new出来,而OC里的是alloc出来。
    反正我对OC里指针的理解是这样的:
    shared_ptr<TYPE>相当于TYPE*
      

  4.   

    NSNumber *point=[[NSNumber alloc] init];
    point= [NSNumber numberXX:];//point确实是一个指针。你直接point = 2;是不对的。相当于给一个指针赋值为整型。
      

  5.   

    你说的对,应该是
    point=@2
      

  6.   

    楼主没有看看NSObject id 是怎么声明的吗?
      

  7.   

    可以这样构造一个NSNumber吗?
      

  8.   

        NSNumber *point=[[NSNumber alloc] initWithInt:2];
        NSLog(@"%@",point);
     应该这样 
    把一个简单int型转换为了一个对象。
    这样 之后你就可以对其进行一些操作, 比方说存入数组,因为oc的数组本质上是字典,NSarray 只能保存对象。