理解像tableView这样的函数中的Swift参数表示法

时间:2015-02-23 15:38:22

标签: ios xcode swift

我最近来到了accros Swift,但有些事我不明白。我想实现一个带有单元格的tableView。我理解,但符号对我来说有点混乱。

我在UITableViewDataSource

中有这个功能
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 5
    }

你能告诉我什么是numberOfRowsInSection ??它是参数部分的函数吗?我看到函数tableView的名称返回一个Int,参数tableView和section有自己的类型。但我真的不知道numberOfRowsInSection。

当调用此函数时?

感谢您的回答。

1 个答案:

答案 0 :(得分:3)

差异是内部外部参数标签。您可以使用两种不同的参数标签。在函数内部使用内部函数,调用函数时使用外部函数。

tableView(tableView: UITableView, numberOfRowsInSection section: Int)
              /\                           /\              /\
              ||                           ||              ||
           internal                     external        internal

我们来看一个示例函数:

func test(str:String, thisIsATest str1:String){
    println(str1)//works
    println(thisIsATest)//error
}

如您所见,我打印str1值。但是你会看到,它只适用于内部参数。

但是如果你现在从外面调用这个函数:

test("hi", str1:"hi2") 

它会抛出错误。因为您使用internal参数标签。 但是,如果您现在使用外部参数标签thisIsATest,它可以工作:

test("hi", thisIsATest:"hi2")

此外,您根本不必设置外部标签,但如果设置外部标签,则还必须为其设置内部标签。但在某些情况下,您必须设置内部标签,例如init()方法。

即使很容易提醒,我也为此做了一个小马:我将一个功能与公司进行比较:如果你在公司工作,而你想打电话给那些也在公司工作的人,你会使用内部电话号码。但是,如果您想将公司服务用作客户(功能的用户),则可以使用外部号码进行呼叫。