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