2014-02-16 6 views
1

Я знаю, что метод, указанный ниже, принимает 2 аргумента, карту и atTop. Почему atTop повторяется дважды? Я знаю, что addCard - это имя функции, и эта функция возвращает пустоту, где карта является переменной типа Card *, и я знаю, что atTop имеет тип BOOL, но почему atTop дважды?Вызов метода Objective-C с несколькими аргументами

- (void)addCard: (Card *)card atTop:(BOOL)atTop; 
+0

Последнее' atTop' является ссылочным именем для значения. например, это могла быть карта '- (void) addCard: (Card *) atTop: (BOOL) myBool;' и внутри функции, к которой вы могли бы получить доступ, с помощью 'myBool'. –

ответ

2

Это потому, что полное имя метода

- addCard:atTop: 

Так первая atTop является частью имени функции, то второй atTop этого имя параметра (оба равны в этом случае просто по совпадению, они могут быть разными)

+0

В Obj. C, все дополнительные параметры должны быть связаны с именем и переменной? Например, void (addCard): (Card *) card atTop: (BOOL) atTop numCards: (int) numCards? Я привык к C++, где мы просто имеем одно имя функции и помещаем столько необходимых переменных. Просто хочу убедиться, что – baskInEminence

+0

@baskInEminence Они не должны быть одинаковыми, нет. – bbum

+0

@baskInEminence То, что вы говорите («параметры должны быть связаны с именем и переменной»), запутывается, параметр «материализуется» в переменной, а переменная имеет имя для ссылки на нее. У вас может даже быть функция, называемая «- addCard :::» (без «промежуточных под-имен») – Merlevede

0

Объектив c обозначение.

(void)addCard: (Card *)card atTop:(BOOL)atTop; 

Имя метода (селектор) - "addCard: atTop:"

Parametr 1 типа - "Card *" название - "карта"

Parametr 2 тип - имя "BOOL" «atTop "

Возвращаемое значение -" void "

Смежные вопросы