Ios 尝试获取具有多个节的UITableView的行数时遇到困难

Ios 尝试获取具有多个节的UITableView的行数时遇到困难,ios,uitableview,swift,nsarray,Ios,Uitableview,Swift,Nsarray,我的应用程序正在崩溃,这是由我在section方法中的行数引起的。不过在我看来还行 我使用我拥有的节数循环,每次迭代我都会得到特定节的行数,并将方法末尾返回的var值设置为表示行数的Int。无论应用程序如何崩溃 章节标题的标题: override func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? { return _sections[section

我的应用程序正在崩溃,这是由我在section方法中的行数引起的。不过在我看来还行

我使用我拥有的节数循环,每次迭代我都会得到特定节的行数,并将方法末尾返回的var值设置为表示行数的Int。无论应用程序如何崩溃

章节标题的标题:

 override func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
        return _sections[section]
    }
表视图中的节数:

override func numberOfSectionsInTableView(tableView: UITableView) -> Int {

    for location in objects {

        var resortName = location["resort"] as NSString

        if !contains(_sections, resortName) {
            _sections.append(resortName)
        }

    }

    return _sections.count
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

    var rowsInSection = 0 as Int

    for var i = 0; i < tableView.numberOfSections(); i++ {

        rowsInSection += tableView.numberOfRowsInSection(i)
    }

    return rowsInSection
}
节方法中的行数:

override func numberOfSectionsInTableView(tableView: UITableView) -> Int {

    for location in objects {

        var resortName = location["resort"] as NSString

        if !contains(_sections, resortName) {
            _sections.append(resortName)
        }

    }

    return _sections.count
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

    var rowsInSection = 0 as Int

    for var i = 0; i < tableView.numberOfSections(); i++ {

        rowsInSection += tableView.numberOfRowsInSection(i)
    }

    return rowsInSection
}
override func tableView(tableView:UITableView,numberofrowsinssection:Int)->Int{
var rowsInSection=0作为Int
对于变量i=0;i

对象是PFObjects的一个数组。

问题的答案取决于您试图在表中显示的内容。你写的代码没有意义。看起来,您正在尝试显示度假村列表,对吗

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int

将调用此方法以确定指定的
部分中的行数。它并不是要求所有部分中所有行的总和。您需要计算每个部分所需的行数,并将其返回。

numberOfRowsInSection方法应该返回每个部分中的行数,而不是所有部分中的总行数。@rdelmar我编辑了我的问题描述,以使其更有意义。我返回的是一个部分的行数,而不是所有部分的总行数。不,你不是。在返回rowsInSection之前,您将遍历每个节并添加每个节中的行数。这将为您提供数据源中的总行数。如果我正确理解您的数据源,您应该返回[_sections[section]count]。不需要任何循环。@rdelmar对我不起作用_节是一个字符串数组,例如“resort 1”、“resort 2”、“resort 3”、“resort 4”、“resort 4”、“resort 1”“.4将在该节中显示两次,因为该数组中的每个字符串都是一个节。如果出现两个相同的字符串,则意味着该度假村有多个活动。问题是
numberofrowsinssection
中的
for
循环-您递归调用该方法,并从0->节的总数开始迭代/相加每个节中的所有行。这意味着每个部分都认为它包含所有行,而不仅仅是它自己的行。该方法的要点是只返回一个特定部分的#行。如果由于重复的度假胜地名称而无法通过这种方式获得准确的行数,那么听起来您的数据结构需要调整。抱歉,编辑了我的问题描述。我想要的是返回节中的行数。我有度假村和活动,有些活动共享同一个度假村。因此,这些活动被分组在一个部分中。每个部分代表一个度假胜地。