1
我想用背景線程實現某些功能。我需要將幾個元素添加到可變數組中,但我不知道如果我正在將我自己的類的對象包裝到數組中。代碼以'NsMutableArray無法用類對象初始化'或類似的東西回覆我的錯誤信息。代碼如下。你們會找出問題出在哪裏,提前感謝很多。如何將類對象添加到nsmutablearray
// Map is my own class
-(void) toDo:(CGPoint)fromPos toPos:(CGPoint)targetPos aMap:(Map *)aMap
{
NSMutableArray * buddy = [[[NSMutableArray init]alloc]autorelease];
[buddy addObject:[NSValue valueWithCGPoint:fromPos]];
[buddy addObject:[NSValue valueWithCGPoint:toPos]];
[buddy addObject:(Map *)aMap];
[self performSelectorInBackground:@selector(toDoThreadFunc:) withObject:buddy];
}
-(void) toDoThreadFunc:(NSMutableArray *)anArray
{
CGPoint fromP = [[anArray objectAtIndex:0] CGPointValue];
CGPoint toP = [[anArray objectAtIndex:1] CGPointValue];
Map * aM = [anArray objectAtIndex:2];
[(Map *)aM performSomething:fromP toPos:toP];
}
語法應爲[[NSMutableArray裏的alloc]初始化]。你試圖初始化,你還沒有爲它分配一個mmeory ......第一次alloc然後init –
C_X是正確的,你正在爲它分配內存之前初始化對象。 (如果不需要在您的APP中使用ARC,您仍然應該繼續使用'autorelease')。 – Werner
真的appreiciate都u thx – user3201493