Objective c 当访问我的NSMutableArray时,我会收到一条错误消息,如;无法初始化类型为';int';具有类型为';id'&引用;

Objective c 当访问我的NSMutableArray时,我会收到一条错误消息,如;无法初始化类型为';int';具有类型为';id'&引用;,objective-c,Objective C,我有下面的函数,我正在努力将y值作为int值输出 + (NSMutableArray *) cleanPoints:(NSMutableArray *)pointsArray{ NSMutableArray *mutableArray = [NSMutableArray array]; for(int i = 0; i<pointsArray.count-1; i++){ CLog(@"pointsArray %@", pointsArray[i]); /// here

我有下面的函数,我正在努力将y值作为int值输出

+ (NSMutableArray *) cleanPoints:(NSMutableArray *)pointsArray{

NSMutableArray *mutableArray = [NSMutableArray array];

for(int i = 0; i<pointsArray.count-1; i++){

    CLog(@"pointsArray %@", pointsArray[i]);   /// here it gives me the correct number, like 345

    int y = (int)pointsArray[i];    //// here seems to be the problem
    CLog(@"y = %d", y);     ///// y is a weird number, like y = 384643392

    if (y < 4 || y > -4){
        y = 0;
    }

    //create Array
    [mutableArray addObject:@(y)];

    }
    return mutableArray;
}
+(NSMutableArray*)清除点:(NSMutableArray*)点阵列{
NSMUTABLEARRY*MUTABLEARRY=[NSMUTABLEARRY];
对于(int i=0;i-4){
y=0;
}
//创建数组
[mutableArray addObject:@(y)];
}
返回可变数组;
}

如果从int y=(int)pointsArray[I]行中取出(int),则会出现错误“无法使用'id'类型的右值初始化'int'类型的变量”

这一行没有意义:

int y = (int)pointsArray[i];
NSArray不可能包含
int
值。它只能包含对象,在Objective-C中,
int
不是对象

也许你是说

int y = [pointsArray[i] intValue];

(但我只是猜测该NSArray包含NSNumber对象;我无法知道,因为您没有提供任何有关这方面的信息)

也许您也可以告诉我为什么它总是为零:int dist=点之间的距离(中间,左上角);int factor=450/dist;…由于某种原因,factor为零,而dist的值为350。如果您有新问题,请将其作为问题提问,而不是在评论中“偷窥”。