好的,如果你看一下我以前的两篇文章(特别是Link#2),我想问一个关于相同代码的其他问题。在方法声明中,我想将其中一个参数定义为指向指针数组的指针,指向feat_data。除了在下面的声明中放入(NSMutableArray *)featDataArray并通过另一个feat_data类型的指针访问每个对象之外,我有点不知所措。顺便说一句,很抱歉要问这么多问题。在我正在使用的书中找不到这样的东西,或者我在寻找错误的地方?
-(void)someName:(NSMutableArray*)featDataArray;
feat_data *featDataPtr = [[feat_data alloc] init];
featDataPtr = [featDataArray objectAtIndex:0];
答案 0 :(得分:3)
你的声明看起来很好。 “NSMutableArray *”是适合您参数的类型。 (Objective-C没有泛型,所以你不能声明数组中的内容。)
我在你的代码中看到的一个问题是你无缘无故地分配一个对象,然后扔掉指针(从而泄漏内存)。
我不知道你想要做什么,所以这里有一些你可以用NSMutableArray做的事情:
- (void)someName:(NSMutableArray *)featDataArray {
feat_data *featDataPtr = [[feat_data alloc] init];
[featDataArray addObject:featDataPtr]; // add an object to the end
[featDataPtr release];
feat_data *featDataPtr2 = [[feat_data alloc] init];
[featDataArray replaceObjectAtIndex:0 withObject:featDataPtr2]; // replace an existing entry
[featDataPtr2 release];
feat_data *featDataPtr3 = [featDataArray objectAtIndex:0]; // get the element at a certain index
// do stuff with featDataPtr3
}