Objective-C 无法将 NSNumber 转换为 int

标签 objective-c arrays integer int automatic-ref-counting

我有一个简单的代码,它将迭代一个整数数组,但是当我尝试使用“for in”循环时,它说我需要一个对象,所以我使用了 NSNumber 但为了让我的代码正常工作,它必须是一个 int,所以在循环之后,我让它将 NSNumber 转换为一个 int。它给了我另一个错误,说我需要声明变量 _strong 才能工作,所以我这样做了,但现在它给了我这些错误:“指向整数转换的不兼容指针将 'NSNumber *_strong' 发送到'int' 类型的参数”和“ARC 不允许将 'int' 隐式转换为 'NSNumber *'” 以下是给出错误的代码:

for(__strong NSNumber *i in factors) {

        i = [i intValue];

最佳答案

您已经将“i”声明为 Objective C 对象(特别是 NSNumber 对象)。

如果您想进行转换,请声明一个单独的不同的变量,例如

int j;

并将整数设置为该值,例如:

j = [i intValue];

关于Objective-C 无法将 NSNumber 转换为 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22826563/

相关文章:

objective-c - Cocoa 基于文档的应用程序中的更改窗口

ios - 核心数据堆栈,, 'coreDataStack'的无可见@interface声明了选择器 'defaultStack'

objective-c - 通过 FTP 连接删除服务器上的文件夹

objective-c - 'applicationDidBecomeActive' 之后调用了什么方法?

Javascript 将图像存储在数组中的对象中,在 console.log() 中,但是在记录对象时?

c++ - 用常量值填充 std::vector<double>

c - 数组指针存在的原因是什么?

c - 如何在 C 中按输入顺序打印整数 - 递增、递减或均匀

c++ - 将 uint64_t rdtsc 值转换为 uint32_t

java - 这是我的代码。在这种情况下,它将输出显示为不等于。但是如果我传递小于 128 的输入,那么它将输出为 Equal