我想使用自己的自定义函数,因此我创建了以下类,它是NSObject
的子类,如:
class ServeStatsTable: NSObject {...}
在上面的课程中,我定义了以下方法:
func serveTableViewHeader(tableView: UITableView!, number: String, info: NSDictionary, color: UIColor!) -> UIView! {...}
但是,当我尝试从另一个类(UIViewController
的子类)中调用上面的方法时,该方法对Xcode中的自动完成没有反应,完成以下操作: / p>
ServeStatsTable.serveTableViewHeader(tableView)
所以我把它修改为以下正确的方法调用:
ServeStatsTable.serveTableViewHeader(tableView, number: "1", info: info, color: UIColor.orangeColor())
然后,Xcode发出错误:Extra argument 'number'...
。
所以我想我甚至无法正确定义方法。
但是如何正确定义方法呢?错误发生在类中的另一个函数上。
最后,当我尝试在Xcode中进行自动完成时,会显示以下弹出窗口:
如果它不是参数列表,那么serveTableViewHeader
的左侧代码是什么意思?看起来这里的论点是self: ServeStatsTable
,这不是我想要的。
答案 0 :(得分:1)
ServeStatsTable
是一个类,但serveTableViewHeader(number:info:color:)
是实例方法,而不是类方法。所以ServeStatsTable.serveTableViewHeader(tableView, number: "1", info:info, color:UIColor.orangeColor())
不是有效的表达式。
Extra argument 'number'
错误是由于您在tableView
之后使用冒号而不是逗号:
ServeStatsTable.serveTableViewHeader(tableView: number: "1", info: info, color: UIColor.orangeColor())
^
如果你想让它成为一个类方法,所以你在类而不是实例上调用它,将class
放在方法声明中,如下所示:
class ServeStatsTable: NSObject {
class func serveTableViewHeader(tableView: UITableView!, number: String, info: NSDictionary, color: UIColor!) -> UIView! {...}
...