看官方给出的示例代码,一般用于计算的,返回的整数都是用 NSInteger的,但是一般for循环的计数器就都是int了
#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

这是NSInteger的定义
对于不同平台32,64位有不同的最大值(int long)。
可以直接转化。
所以mac os或者ios上的系统api都是使用NSInteger作为参数。

附示例代码:

//

// HostEntity.h

//

#import <Foundation/Foundation.h>

@interface HostEntity : NSObject

/// 服务器ip

@property (strong, nonatomic) NSString *ip;

@property (nonatomic) NSInteger port;

@end

main.m

#import <Foundation/Foundation.h>

#import “HostEntity.h”

int main(int argc, const char * argv[])

{

@autoreleasepool {

NSInteger a = 1;

NSInteger b = 2;

NSLog(@”Hello, World!”);

NSLog(@”Hello, World %li!”, a+b);

HostEntity *entity = [[HostEntity alloc] init];

entity.ip = @”127.0.0.1″;

[entity setPort:(NSInteger)8080];

// 下面两种代码等价, 仅用于属性模式

// [entity setPort:[[NSNumber numberWithInt:8090] integerValue]] ;

// entity.port = [[NSNumber numberWithInt:8080] integerValue];

NSLog(@”entity.port %ld!”, (long)[entity port]);

}

return 0;

}

参考: http://segmentfault.com/q/1010000000124408

转载请注明:WebLogic Android 博客 » Objective C: NSInteger和int