gpt4 book ai didi

ios - 使数组中的无序项目始终保持相同顺序

转载 作者:行者123 更新时间:2023-11-29 01:17:29 24 4
gpt4 key购买 nike

我的应用程序有一个带有 tableview 的 VC,其中包含 10 个单元格(问题)。用户选择适用于他们的任何内容,然后按 “next” 按钮。然后,它进入下一个 VC 有一个 TableView 并初始化问题的相应部分。

例如,如果我从 10 个问题中选择“问题 1,问题 2”,那么它应该分为两个部分,标题分别为“问题 1”和“问题 2”。

现在我添加一个在数组中选择的问题,如下所示:

   func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
result.append(allCriteria[indexPath.row])
}

然后,当按下“next” 按钮时,它将result 数组传递给下一个VC。根据传递的数组“result”,它按顺序初始化部分。

问题是,如果我按随机顺序按问题,它会改变部分的顺序。这是意料之中的。有办法解决这个问题吗?

简而言之,即使用户按 "Question2, Question1" 的顺序选择问题,我也希望按 "Question1, Question2" 的顺序制作部分

result 数组是 [Question]! 的类型,Question class 如下所示:

class Question {

var documents: [Document] = []
var title: String
var description: String

init(dict: [String:AnyObject] ) {
// parse dict to generate a bunch of documents, add them to self.documents
self.title = dict["Title"] as! String
self.description = dict["Description"] as! String

let documentsDicts = dict["Documents"] as! [Dictionary<String,AnyObject>]

for dictionary in documentsDicts {
let document = Document(dict: dictionary)
self.documents.append(document)
}
}
}

最佳答案

当用户选择一个单元格时,无需将Question 添加到result 数组,您只需将该单元格的indexPath 添加到一个大批。当用户单击下一步时,您只需按升序对 indexPath 数组进行排序,然后在此基础上生成 result 数组并将其传递给下一个 View Controller ,像:

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
indexPathArray.append(indexPath)
}

func next() {
let sorted = indexPathArray.sort(<)
let result = sorted.map {
(var index) -> Question in
return allCriteria[index]
}
// ........
}

关于ios - 使数组中的无序项目始终保持相同顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34984478/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com