2015-05-18 3 views
2

Иногда я вижу методы Swift, задокументированные как application(_:didFinishLaunchingWithOptions:) или tableView(_:cellForRowAtIndexPath:). Где документированы эти общие документы документации по документам? Например: где я могу увидеть, что означает подчеркивание, как интерпретировать несколько параметров метода, задокументированных таким образом и т. Д.Параметры Swift метода в документации

+0

тип func tableView и позволяет Xcode автоматически завершить его для вас. Он покажет все варианты, включая cellForRowAtIndexPath –

+1

Да, я могу и делаю это, но я хотел бы знать, как правильно читать обобщенную документацию, используя описанное выше соглашение. Это не вопрос о tableView или какой-либо конкретный метод. –

ответ

1

Конвенция проиллюстрирована в The Swift Programming Language: Functions. Это внешняя подпись функции, то есть то, что вам нужно знать, чтобы назвать ее. Он состоит из имени функции, плюс все метки аргументов для всех параметров этой функции.

Рассмотрим

func greet(person: String) -> String { 
    ... 
} 

Это greet(person:) функция.

Но учтите следующее, несколько более сложный, Swift 3 UITableViewDataSource метод:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
    ... 
} 

Здесь каждый из этих двух параметров имеет как метка аргумент (то, что используется, когда вызывается функция), а затем имя параметра (что используется для обозначения этого параметра внутри самой функции). В этом случае первый параметр не имеет метки аргумента (обозначается _), но это имя tableView. Метка аргумента второго параметра - cellForRowAt, а имя - indexPath.

В этом случае, вы будете видеть выше UITableViewDataSource метод, на который ссылается в качестве tableView(_:cellForRowAt:): Имя функции является tableView, то первый параметр не имеет аргумента метки (обозначенный _), а второй параметр имеет аргумент метку cellForRowAt.


Как и в сторону, в Swift версии 2, метка аргумент первого параметра по умолчанию будет _ (т.е. без метки), если явно не указано иное. Эффективный Swift 3, первый параметр работает с теми же самыми всеми другими параметрами, по умолчанию, независимо от имени параметра (поэтому вы увидите в этом случае _, чтобы явно указать, что этот первый параметр функции Swift 3 не имеет значения, t есть метка).

+0

(Я не мог найти 'Swift дает первое имя параметра в 'после этой ссылки, даже продолжая [Ярлыки аргументов функции и имена параметров] (https://developer.apple.com/library/content/documentation/Swift/ Концептуальный/Swift_Programming_Language/Functions.html # // apple_ref/doc/uid/TP40014097-CH10-ID166) не помогло.) – greybeard

+1

Да, это было поведение, уникальное для Swift 2, где первый параметр вел себя по-другому, что все последующие метки , Это анахронизм, относящийся к Objective-C, который был удален в Swift 3, поэтому вы больше не видите ссылки на этот документ. – Rob

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