我是 swift 语言的初学者。所以我的问题如下。 我在一个视图控制器中有多个数组,我从中加载数据到表视图中。
我的代码是:
let filemanager = FileManager.default
var folderNameArray = [String]()
var completedExerciseArray = [String]()
var getCompletedExerciseNamesArray : [String] = []
var getCompletedDayArray = [String]()
var getCompletedDateArray = [String]()
var getCompletedTimeArray = [String]()
func getAllSavedDictionary() {
let paths = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.allDomainsMask, true)
for everyFileName in folderNameArray {
if let documentPath = paths.first {
let filePath = NSMutableString(string: documentPath).appendingPathComponent(everyFileName)
let URL = NSURL.fileURL(withPath: filePath)
if let dictionary = NSMutableDictionary(contentsOf: URL){
let savedDayDateArray = dictionary.value(forKey: "DayDate") as? [String]
let savedDayTimeArray = dictionary.value(forKey: "DayTime") as? [String]
let savedDayNumberArray = dictionary.value(forKey: "DayNumber") as? [String]
let savedCompletedExerciseNamesArray = dictionary.value(forKey: "completedExerciseNames") as? [String]
self.getCompletedExerciseNamesArray.append(contentsOf: savedCompletedExerciseNamesArray!)
self.getCompletedDayArray.append(contentsOf: savedDayNumberArray!)
self.getCompletedDateArray.append(contentsOf: savedDayDateArray!)
self.getCompletedTimeArray.append(contentsOf: savedDayTimeArray!)
historyTableview.reloadData()
}
}
}
}
它工作正常,但我想知道如何制作模型而不是数组并在表格视图中加载该模型。 在“for everyFileName infolderNameArray”中 folderNameArray 保存文件管理器中的所有文件夹。
这是一个非常开放式的问题。
模型只是一种能够很好地表示数据的格式。
单个分段表视图的一个明显结构是结构数组。
如果您有一个多节表视图,结构数组的数组效果很好,但现在忽略它。
只需为您的数据创建一个结构:
struct CompletedWorkout:
folderName: String
exercise: String
exerciseName: String
day: String
date: String
time: String
}
然后是这些结构的数组:
var completedWorkouts = [CompletedWorkout]()
然后,您可以根据需要使用 CompletedWorkout 项目填充该数组。
请注意,我可能没有正确捕获您想要的数据元素。此外,对于许多不同的属性,字符串类型可能不是最佳选择(例如,日期可能最好存储为类型
Date
。)