我试图摆脱swift xcode中的这些错误
如果屏幕截图太小,则代码为
import UIKit
class AnimalListTableViewController: UITableViewController
{
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 4
}
let indexPath = self.tableView.indexPathForSelectedRow()//this is where the error appears, it says Value of type 'NSObject -> () -> AnimalListTableViewController' has no member 'tableView'
override func prepareForSegue(segue: UIStoryboardSegue,
sender: AnyObject?)
{
if let DetailViewController =
segue.destinationViewController
as? DetailViewController {
}
}
if let indexPath = self.tableView.indexPathForSelectedRow()
{
DetailViewController.Animal = animals[indexPath.row]
}
}
答案 0 :(得分:1)
代码格式不正确。
在生成错误的行中,您正在AnimalListTableViewController
class
声明的上下文中工作,而不是在函数内。从左到右阅读时,就好像您正在尝试声明indexPath
类的常量数据成员AnimalListTableViewController
。
看起来你正试图这样做:
class AnimalListTableViewController: UITableViewController
{
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 4
}
override func prepareForSegue(segue: UIStoryboardSegue,
sender: AnyObject?)
{
if let detailViewController = segue.destinationViewController as? DetailViewController, let indexPath = self.tableView.indexPathForSelectedRow {
detailViewController.Animal = animals[indexPath.row]
}
}
}
也清理了其他一些事情:
DetailViewController
)作为变量名。已将其更改为detailViewController
。if let
语句折叠为单个语句。清洁器;避免选择。