Добавить параметр в сигнатуру функции в цели C - PullRequest
0 голосов
/ 23 февраля 2012

Что я должен сделать с помощью функции подписи ниже, чтобы добавить еще один параметр:

- (void)locationPondSizeViewController:
(LocationPondSizeViewController *)controller 
                   didSelectPondSize:(NSString *)thePondSize
{
    ....
}

это на самом деле функция делегата и вызывается из:

[self.delegate locationPondSizeViewController:self 
                              didSelectPondSize:thePondSize];

Также помогите мне понять, что такое имя делегата, имя функции, параметры и тип возвращаемого значения в этой подписи.

Ответы [ 2 ]

1 голос
/ 23 февраля 2012

Это немного похоже на домашнее задание ...

Декларация Objective-C:

- (void)locationPondSizeViewController:(LocationPondSizeViewController *)controller 
                     didSelectPondSize:(NSString *)thePondSize { ... }

будет написано на языке с использованием более традиционных объявлений стилей, как:

void locationPondSizeViewController:didSelectPondSize:(LocationPondSizeViewController *controller, NSString *thePondSize) { ... }

(хотя большинство языков не позволяют: в идентификаторе)

Таким образом, имя метода / функции равно locationPondSizeViewController:didSelectPondSize:, оно принимает два параметра типов LocationPondSizeViewController * и NSString * и ничего не возвращает (void), то есть является процедурой. Параметры в его теле называются controller и thePondSize.

Вы расширяете дополнительные параметры, добавляя «<часть имени>: (* ​​1019 *) <имя параметра>» столько раз, сколько вам нужно.

Бессмысленный лакомый кусочек: на самом деле двоеточия не нужно ставить перед чем-либо, это правильное определение метода :::

- (int) :(int)x :(int)y { return x + y; }
1 голос
/ 23 февраля 2012

Вот пример вашего метода с добавленным дополнительным параметром:

- (void)locationPondSizeViewController:(LocationPondSizeViewController *)controller 
                     didSelectPondSize:(NSString *)thePondSize
                      withNewParameter:(NSObject*)newParam
{
    ...
}

А вот как бы вы это назвали:

[self.delegate locationPondSizeViewController:self didSelectPondSize:thePondSize withNewParameter:myParam];

В этом примере сигнатура метода - - locationPondSizeViewController:didSelectPondSize:withNewParameter:

Требуется три параметра: 1) controller, 2) thePondSize и 3) newParam

Тип возвращаемого значения этого метода: void.

...