objective-c – int和NSInteger有什么区别?

objective-c – int和NSInteger有什么区别?,第1张

概述Possible Duplicates: 07000 07001 我们可以互换使用int和NSInteger吗?有没有使用NSInteger的具体情况,而不是使用int? Can we use int and NSInteger interchangably? 不,在苹果公司使用的LP64架构中,对于现代OS X Cocoa,NSInteger的64位宽.这意味着如果将NSInteger转换为in

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有什么区别?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1030524.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存