Possible Duplicates:
07000
07001
我们可以互换使用int和NSInteger吗?有没有使用NSInteger的具体情况,而不是使用int?
解决方法Can we use int and NSInteger interchangably?
不,在苹果公司使用的LP64架构中,对于现代OS X Cocoa,NSInteger的64位宽.这意味着如果将NSInteger转换为int,则与NSNotFound的比较可能会失败.以下是一个例子:
NSRange theRange = [@"foo" rangeOfString @"x"];int location = theRange.location;if (location == NSNotFound) // comparison is broken due to truncation in line above{ // x not in foo}
在我看来,您只应该使用NSInteger,您需要将参数传递给Cocoa或从Cocoa接收结果,并且文档说数据类型为NSInteger.在所有其他情况下:
>如果您不关心类型的宽度,请使用C类型int或long>如果您关心类型的宽度,请使用C99 stdint.h类型int32_t,int64_t.>如果你需要一个足够大的int来保存一个指针,可以使用intptr_t或者uintptr_t
总结以上是内存溢出为你收集整理的objective-c – int和NSInteger有什么区别?全部内容,希望文章能够帮你解决objective-c – int和NSInteger有什么区别?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)