2010-05-17 29 views
3

我一直在尋找無處不在的這個問題的答案 - 也許我看錯了地方。另外,儘管我有10年左右的開發經驗,但我是Objective C的全新人物。新手目標C開發人員問題

此代碼:

[receiver makeGroup:group, memberOne, memberTwo, memberThree]; 

將方法定義是什麼樣子?

- (void)makeGroup:(Group *)g, (NSString *)memberOne, ...? 

感謝您提供任何幫助。我知道這可能是很簡單的...

感謝, [R

回答

4

看起來你有一個可以帶可變數量的參數的方法。如果是這樣的話,這個定義看起來是這樣的:

- (void)makeGroup:(Group *)g, ...; 

退房NSStringstringWithFormat:NSArrayarrayWithObjects:方法的例子。

編輯:在進一步的文檔閱讀,似乎你正在尋找在Objective-C 2.0 documentation確切的例子。您正在尋找的聲明在第36頁的底部。

+0

哦,不開玩笑?你的字面意思是「......」?現在就去測試一下。 – 2010-05-17 19:06:01

+0

賓果到您的編輯:我還沒有進入該頁面。在第17頁上,電話被列出,沒有提及36的聲明。謝謝你的回答,並看到這個例子。 – 2010-05-17 19:10:35

-1

編輯:我回答錯誤的問題。忽略這個。

正確的方式做,這就是:

-(void)makeGroup:(Group *)g memberOne:(NSString *)memberOne memberTwo:(NSString *)memberTwo memberThree:(NSString *)memberThree { 
    ... 
} 

電話會議將是這樣的:

[receiver makeGroup:group memberOne:memberOne memberTwo:memberTwo memberThree:memberThree]; 
+0

這與OP的問題不符。它看起來更像是他有不定數量的參數。 – 2010-05-17 18:29:51

+0

如果參數是n長度,他應該使用一個數組。但是,無論上面的答案都有正確的語法。 – ExitToShell 2010-05-17 18:32:27

+1

原始文章中的示例與Objective-C 2.0 PDF第17頁中的示例完全相同,因此我非常肯定他在詢問可變參數方法。 – 2010-05-17 18:35:46

0

要麼你正在尋找MrHen的答案,如果你正在尋求做你自己的班級方法,或者如果你想分開做你寫的跟在你的頭文件中:

-(void)makeGroup:(Group *)g; 
-(NSString *)memberOne; 
1

你可以接收一個帶有省略號(...)的無限數量的參數。查看this瞭解更多詳情!

1

將成員設置爲單獨的數組參數(如-(void)makeGroup:(Group *)g members:(NSArray *)members)會更有意義。如果你必須做可變參數(這是一個痛苦),它應該寫成像-(void)makeGroup:(Group *)g members:(NSString *)firstMember, ...

因爲我這是試圖找出如何從文檔的示例方法將被宣佈,這將是這樣的:

- (void)makeGroup:(id)group, ... 

然後你就開始了varags機械與組參數和使用它找到其他論點。

+0

啊,是的,但是,我對此很新 - 我正在通過這裏的Objective-C編程語言文檔工作:http://developer.apple.com/iphone/library/documentation/Cocoa/Conceptual /ObjectiveC/Articles/ocObjectsClasses.html,我遇到了代碼片段,我希望列出方法聲明。 – 2010-05-17 19:07:28