调用实例函数是我的错,对吧?

时间:2015-02-19 01:31:10

标签: ios swift

我定义了以下课程;试图测试它。 但是当我调用看似正确的函数时 正式和实际参数,Swift 1.2报告 预期声明

我不知道它有什么问题。

*注意:我创建了这个类是因为我无法通过引用传递数组(inout /&)来传播在被调用函数中所做的更改。这也很奇怪。

    class TableData {

        var dataArrays = [UITableView : [String]]()

        func addArray(obj : UITableView, _ initialValues : [String] ) {
            dataArrays[obj] = [String]()
            dataArrays[obj]?.extend(initialValues)
        }
        func swapItems(tv : UITableView, _ rowa: Int, _ rowb : Int) {
            var item1 = dataArrays[tv]![rowa] as String
            var item2 = dataArrays[tv]![rowb] as String
            dataArrays[tv]![rowa] = item2
            dataArrays[tv]![rowb] = item1
        }

        func moveItem(srcTbl: UITableView, _ srcRow : Int, _ dstTbl: UITableView, _ dstRow: Int) {
            var item = getItem(srcTbl, srcRow)
            insertItem(dstTbl, dstRow, item)
            deleteItem(srcTbl, srcRow)
        }

       func insertItem(tv : UITableView, _ row: Int, _ value: String) {
           dataArrays[tv]!.insert(value, atIndex: row)
       }

        func getItem(tv: UITableView, _ row: Int) -> String {
           return dataArrays[tv]![row]
        }

        func deleteItem(tv: UITableView, _ row: Int) {
            dataArrays[tv]!.removeAtIndex(row)
        }

        func count(tv: UITableView) -> Int {
            return dataArrays[tv]!.count
        }

        func printItems(tv: UITableView, title: String? = nil) {
            if title != nil {
                println("\(title):")
            }
            for i in 0..<dataArrays[tv]!.count {
                var item = dataArrays[tv]![i]
                println("\(i) \"\(item)\"")
            }
        }
    }

enter image description here

1 个答案:

答案 0 :(得分:0)

唉,没关系。我不得不将调用tableData.addArray()移动到viewDidLoad()中。

我比这更清楚。好吧,漫长的一天。

我习惯于从Swift中的函数中初始化一些变量(以免将所有变量都推送到init())。