Я тільки що відкрив swift 2 проект з останньою версією Xcode. Xcode пропонують мені автоматично перетворити мій код на swift 3.
Ось щось дивне:
func numberOfSections(in tableView: UITableView) -> Int
{
return 1
}
func tableView(_ tableView: MyTableView, numberOfRowsInSection section: Int) -> Int
{
return 10
}
Якщо ви подивитеся, Xcode додав ключове слово "in" для методу numberOfSections. Але він нічого не зробив для методу numberOfRowsInSection. Я не розумію чому.
Що таке ключове слово "in" у Swift 3?
Відповіді:
0 для відповіді № 1Це не ключове слово. Це ім'я першого параметра в методі.
У Swift2 метод був ...
func numberOfSections(inTableView: UITableView) -> Int
... і буде називатися так ...
numberOfSections(tableView)
У Swift 3 багато уваги приділяється створеннюІмена функцій більш грунтуються на дієслові і видаляють надлишкові висновки або натякливі типи з імен методів. Крім того, тепер необхідний перший параметр методу.
Всі ці зміни призводять до оновлення імені до побаченого, а виклик стає ...
numberOfSections(in: tableView)
Докладніше про зміни в Swift 3 можна прочитати в Керівництво API для Apple.