在 64 位架构中构建时的 Cocoa NSInteger

标签 cocoa nsinteger

我将 NSSegmentedControl 设置为发送者,当用户单击对象中的每个按钮时添加功能。下面的代码片段对我来说总是很有效。它仍然如此,但是当我使用 64 位架构构建时,我收到以下警告。当我恢复到 32 位时,警告就会消失。有人可以告诉我如何编辑代码吗? 谢谢您的帮助。 -保罗。

“隐式转换会丢失整数精度:NSInteger(又名 long)到“int”

int selectedSegment = [arSegController selectedSegment];
int clickedSegmentTag = [[arSegController cell] tagForSegment:selectedSegment];

if (clickedSegmentTag == 0) {

最佳答案

您需要使用 NSInteger 而不是 int 作为变量。您可以只查看 NSSegmentedControl.h 中的声明,但更好的是阅读 Apple 的 64-Bit Transition Guide for Cocoa .

关于在 64 位架构中构建时的 Cocoa NSInteger,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11955387/

相关文章:

objective-c - 帮助制作自动更新程序

用户退出后 MacOS 应用程序重新打开

objective-c - 如何检查一个 NSInteger 是否大于另一个 NSInteger?

objective-c - C/Objective-C 读取并获取整数的最后一位?

ios - 使用NSInteger作为NSDictionary objectForKey中的类型ID

objective-c - 带字符串的系统日志?

xcode - 核心图 - 从类分配 CPTGraphHostingView

objective-c - 使用 stringWithUTF8String 和 dataUsingEncoding 将 NSString 转换为 NSData 返回 nil

objective-c - 检查整数是正数还是负数 - Objective C

iphone - 如何使用 NSIntegerMax 在 UIPickerView 中选择项目?