我有一个简单的代码,它将迭代一个整数数组,但是当我尝试使用“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/