次の環境でSwiftアプリをビルドしたところ、タイトルのようなコンパイルエラーが出ました。
Xcode 7.0 beta 5
原因はoverrideしたメソッドの戻り値の型が誤っていたためでした。単純ミスです。
こちらがUITableViewControllerに記述した、エラーになるコードです。
// 間違えたコード
override func sectionIndexTitlesForTableView(tableView: UITableView) -> [String] {
return ["a", "b", "c"]
}
UITableViewDataSourceのsectionIndexTitlesForTableViewはオプショナルを返すので、
// 正しいコード
override func sectionIndexTitlesForTableView(tableView: UITableView) -> [String]? {
return ["a", "b", "c"]
}
と修正しました。これでコンパイルが通るようになりました。