Каждый протокол поставляется с набором методов, которые вы должны реализовать, чтобы соответствовать им. Вы должны написать эти методы в своем классе, чтобы соответствовать им.
Например, в UIViewController, если вы решили иметь Tableview, вы должны добавить UITableViewDataSource
, UITableViewDelegate
протокол, например, так:
class ViewController : UIViewController, UITableViewDataSource, UITableViewDelegate {
}
Но это не полная реализация протокола. Это просто декларация.
Чтобы на самом деле ваш контроллер View соответствовал протоколу, вам необходимо реализовать два метода: cellForRowAtIndexPath
и numberOfRowsInSection
. Это требование протокола.
Таким образом, полная реализация будет выглядеть примерно так:
class ViewController : UIViewController, UITableViewDataSource, UITableViewDelegate {
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("cellID", forIndexPath: indexPath) as! ExperienceCell
return cell
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete implementation, return the number of rows
return 0
}
}
Таким образом, вы должны смотреть в документацию и найти то, что методы делают ваш протокол требует класса для реализации. Это должно решить эту проблему. И я не думаю, что это сделать что-нибудь с Xcode 8 или стремительной 3
EDIT Здесь: Это то, что apple documentation says
Most methods of this protocol are optional. You implement the methods you need to respond to the data transfer operations that your apps support. However, apps should implement support for the session:activationDidCompleteWithState:error: method to support asynchronous activation, and the delegate in your iPhone app should implement the sessionDidBecomeInactive: and sessionDidDeactivate: methods to support multiple Apple Watches.
Вы строили/чистили проект? –
@AkshanshThakur да, несколько раз – Devhess
Если вы читаете полную ошибку в выходе сборки, она сообщает вам, как вы не соответствуете протоколу –