2009-07-14 54 views
0

好的,如果你看看我的兩個以前的帖子(特別是鏈接#2),我想問一個關於相同的問題碼。在方法聲明中,我想將參數中的一個定義爲指向指向數組的指針,指向feat_data。我有點不知所措,除了在下面的聲明中放置(NSMutableArray *)featDataArray,並通過feat_data類型的另一個指針訪問每個對象之外,該怎麼做。順便說一句,很抱歉要問這麼多問題。我在我正在使用的書中找不到像這樣的一些內容,或者我正在尋找錯誤的地方?Objective-C - 如何在方法聲明中實現指針數組

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

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

Link #1

Link #2

回答

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 
} 
+0

啊好的,謝謝。我一秒鐘沒有看到你在說什麼,但現在我知道了。 – 2009-07-14 13:47:52