2014-09-25 50 views
0

我想用我自己的自定义功能,所以我创建了下面的类,它的子类从NSObject,如:为什么我的函数不能在Swift中正确自动完成?

class ServeStatsTable: NSObject {...} 

而且在上面的类中,我定义了以下方法:

func serveTableViewHeader(tableView: UITableView!, number: String, info: NSDictionary, color: UIColor!) -> UIView! {...} 

然而,当我试图从另一个类,它是从子类内UIViewController调用上述方法中,所述方法未反应在Xcode自动完成,具有以下完成:

ServeStatsTable.serveTableViewHeader(tableView) 

所以我把它修改为以下正确的方法调用:

ServeStatsTable.serveTableViewHeader(tableView, number: "1", info: info, color: UIColor.orangeColor()) 

但随后,Xcode的吐出一个错误:Extra argument 'number'...

所以我想我甚至不能正确定义方法。

但是如何正确定义方法呢?类中的另一个函数发生错误。

最后,当我试图让在Xcode自动完成,它会显示以下弹出:

enter image description here

如果不是参数列表,那么什么是从serveTableViewHeader左侧码意思?看起来这里的参数是self: ServeStatsTable,这不是我所期待的。

回答

1

ServeStatsTable是一类,但serveTableViewHeader(number:info:color:)是一个实例方法,而不是一个类方法。所以ServeStatsTable.serveTableViewHeader(tableView, number: "1", info:info, color:UIColor.orangeColor())不是一个有效的表达式。 tableView这里经过

Extra argument 'number'错误是由于您使用冒号,而不是一个逗号:

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! {...} 

    ... 
+0

谢谢。至于'额外论证'错误,在写这个问题时这是一个错字,但是原始代码使用了逗号并且仍然给我带来了错误。我修好了它。 – Blaszard 2014-09-25 20:50:21

相关问题