为什么有些地方  NSInteger不能换成int????

解决方案 »

  1.   

    具体是什么地方呢?
    NSInteger是对象,而int是基本数据类型,不是对象。
      

  2.   

    瞎讲,NSInteger不是对象!
    根据平台,NSInteger有时是int,有时是long至于不能转的问题,应该是编译器设置的严格了
      

  3.   

    当需要使用int类型的变量的时候,可以像写C的程序一样,用int,也可以用NSInteger,但更推荐使用NSInteger,因为这样就不用考虑设备是32位的还是64位的。
     楼主你可以看如下定义:
    #if __LP64__ || (TARGET_OS_EMBEDDED && !TARGET_OS_IPHONE) || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64
    typedef long NSInteger;
    typedef unsigned long NSUInteger;
    #else
    typedef int NSInteger;
    typedef unsigned int NSUInteger;
    #endif
      

  4.   

    恩不好意思,我说错了。
    NSInteger是基本数据类型int的typedef,不是对象,它被typedef成64位的long或32位的int。
      

  5.   

    根据平台不同,nsinterger都是4字节