2014-01-18 225 views
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]; 
} 
+0

語法應爲[[NSMutableArray裏的alloc]初始化]。你試圖初始化,你還沒有爲它分配一個mmeory ......第一次alloc然後init –

+0

C_X是正確的,你正在爲它分配內存之前初始化對象。 (如果不需要在您的APP中使用ARC,您仍然應該繼續使用'autorelease')。 – Werner

+0

真的appreiciate都u thx – user3201493

回答

1

你可以用這個

NSMutableArray *array = [[NSMutableArray alloc] init]; 
[array addObject:[yourObject class]]; 

//Later 
Class yourObject = [array objectAtIndex:0UL]; 

感謝嘗試

相關問題