2011-09-02 67 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];