0

好的,如果您查看我之前的两篇文章(特别是链接 #2),我想问一个与相同代码有关的附加问题。在方法声明中,我想将其中一个参数定义为指向指向 feat_data 的指针数组的指针。除了将 (NSMutableArray*)featDataArray 放在下面的声明中并通过另一个 feat_data 类型的指针访问每个对象之外,我有点不知道去哪里和做什么。顺便说一句,很抱歉问了这么多问题。我在我正在使用的书中找不到类似的东西,或者我找错地方了?

-(void)someName:(NSMutableArray*)featDataArray;

feat_data *featDataPtr = [[feat_data alloc] init];
featDataPtr = [featDataArray objectAtIndex:0];

链接#1

链接#2

4

1 回答 1

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
}
于 2009-07-14T05:29:27.400 回答