的時候所以,我有點新的OBJ-c和我有一個奇怪的崩潰與下面的代碼發生的事情:Objective-C的程序崩潰添加對象的NSMutableArray
- (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;
}
此代碼運行正常,但只要我取消註釋將對象添加到「相鄰」NSMutableArray的行,那麼該程序就會崩潰。
的getAdjacents方法的簽名如下:
- (NSMutableArray*)getAdjacents:(int)startX withY:(int)startY;
我正在開發Windows下的一個插件,科爾多瓦,所以我沒有任何調試信息提供...但也許我的錯誤是明顯的給有經驗的obj-c開發人員?
非常感謝您的幫助!
你沒有崩潰日誌?我的猜測是,實際上'adjacents'是一個'NSArray'而不是'NSMutableArray',但這純屬猜測。 – Larme
你確定getAdjacents返回一個* mutable *數組嗎?儘管簽名返回對象可能仍然只是一個NSArray。 –
你可以發佈你的崩潰日誌,所以它很容易找到問題在哪裏? – CodeChanger