Objective-c 将对象添加到 NSMutableArray 时程序崩溃

Objective-c program crashes when adding object to NSMutableArray

所以,我是 Obj-c 的新手,我在使用以下代码时发生了奇怪的崩溃:

- (NSMutableArray*)followNonBlackPixels:(int)startX withY:(int)startY
{
    NSMutableArray* result;
    NSMutableArray* adjacents = [self getAdjacents:startX withY:startY];

    int r = 0;
    int i = 0;
    int tempX;
    int tempY;
    int max = [adjacents count];
    CGPoint tempPoint;
    while(i < max)
    {
        int tempX = (int)[[adjacents objectAtIndex:i] CGPointValue].x;
        int tempY = (int)[[adjacents objectAtIndex:i] CGPointValue].y;

        result = [self getAdjacents:tempX withY:tempY];

        for(r = 0; r < [result count]; r++)
        {
            tempPoint = [[result objectAtIndex:r] CGPointValue];
            //[adjacents addObject:[NSValue valueWithCGPoint:CGPointMake(tempPoint.x, tempPoint.y)]];
        }

        i++;
        max = [adjacents count];
    }

    return adjacents;
}

此代码运行良好,但一旦我取消注释将对象添加到 "adjacents" NSMutableArray 的行,程序就会崩溃。

getAdjacents方法的签名如下:

- (NSMutableArray*)getAdjacents:(int)startX withY:(int)startY;

我正在 Windows 下开发一个 Cordova 插件,所以我没有任何调试信息可以提供...但也许有经验的 obj-c 开发人员会清楚我的错误?

非常感谢您的帮助!

如果您将代码更改为以下内容,

NSMutableArray *adjacents = [[NSMutableArray alloc] initWithArray:[[self getAdjacents:startX withY:startY] mutableCopy]];