【问题标题】:Understanding Swift argument notation in functions like tableView了解 tableView 等函数中的 Swift 参数表示法
【发布时间】:2015-02-23 15:38:22
【问题描述】:

我最近接触了 Swift,但有些东西我不明白。我想用单元格实现一个 tableView。我理解,但符号对我来说有点混乱。

我从 UITableViewDataSource 获得了这个功能

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 5
    }

你能告诉我什么是 numberOfRowsInSection 吗?他的参数部分是一个函数吗?我看到返回 Int 的函数 tableView 的名称、参数 tableView 和具有自己类型的部分。但我真的不明白 numberOfRowsInSection。

什么时候调用这个函数?

感谢您的回答。

【问题讨论】:

    标签: ios xcode swift


    【解决方案1】:

    区别在于内部外部参数标签。您可以使用两种不同类型的参数标签。内部使用在函数本身内部,外部使用在调用函数时使用。

    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() 方法中。

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

    【讨论】:

    • 谢谢克里斯蒂安,很清楚。这基本上是 Apple 和开发人员的命名约定,以了解该功能最后的作用是什么?我们知道函数何时被调用吗?还是被 Apple 隐藏了?
    • “我们知道函数何时被调用”是什么意思?好吧,这与方法的命名方式无关。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-09
    • 1970-01-01
    • 1970-01-01
    • 2019-01-10
    • 2022-12-17
    • 2015-12-14
    • 1970-01-01
    相关资源
    最近更新 更多