2011-09-02 77 views
0

如何將指針作爲參數傳遞給方法? 例如:方法params中的指針 - objective-c

-(void) dosomething:(NSString *) simpleString :(NSMutableArray *) pointerToArray; 

其中simpleString簡單PARAM,和pointerToArray是指針的陣列;

+0

所有對象變量都已經是指針。你想用你的方法完成什麼? –

回答

1

像這樣:

-(void) dosomething:(NSString *) simpleString :(NSMutableArray **) pointerToArray; 

(參數類型

添加第二個 '*' 在你的方法,你再這樣做:

*pointerToArray = [NSMutableArray array]; 
+1

'NSMutableArray *'已經是指針。 'NSMutableArray **'是指向數組的指針的指針=) – Nekto

+0

嗯,這是真的。注意到。我不確定我是否理解OP的問題。仍然不確定我做了! :P –

+2

我想,他不明白NSString *已經是指針了。 – Nekto

1

例如:

NSString *localSimpleString; 
NSMutableArray *localArray; 
[self dosomething:localSimpleString :pointerToArray]; 
+0

爲什麼這會降低投票率?答案看起來對我有效。 –

4

In Objective-C,字符串和數組都是類。正如你所看到的,它們已經通過指針訪問了。作爲聲明說,所以你只需使用它們:

-(void) dosomething:(NSString *) simpleString :(NSMutableArray *) pointerToArray; 

你調用,如:

NSString *s = @"Hello, world"; 
NSMutableArray *a = [NSMutableArray arrayWithObjects: @"Hello", @"silly", @"example", nil]; 

[yourClass dosomething:s :a]; 

FWIW,你的方法的名稱是dosomething::。習慣上表示每個參數,所以我把它叫做:

-(void) doSomethingWithString:(NSString *)greeting array:(NSMutableArray *)strings; 

則名爲doSomethingWithString:array:這是更具可讀性,海事組織。您用 調用它:

[yourClass doSomethingWithString:s array:a];