看iOS SDK 方法返回的类型都是NSInteger,但是官方给出的示例代码一般for循环的计数器就都是int了。
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;for (int i=0; i<10; i++) {}
到底int 和NSInteger有什么区别。
其实也没有什么神奇的地方,只要跟踪到他们的定义就可以看到:
#if __LP64__ || (TARGET_OS_EMBEDDED && !TARGET_OS_IPHONE) || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64typedef long NSInteger;typedef unsigned long NSUInteger;#elsetypedef int NSInteger;typedef unsigned int NSUInteger;#endif
对于不同平台32,64位有不同的最大值(int long)。
可以直接转化。所以mac os或者ios上的系统api都是使用NSInteger作为参数。