如何在swift中创建模型?

问题描述 投票:0回答:1

我是 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 保存文件管理器中的所有文件夹。

arrays swift model-view-controller model nsfilemanager
1个回答
0
投票

这是一个非常开放式的问题。

模型只是一种能够很好地表示数据的格式。

单个分段表视图的一个明显结构是结构数组。

如果您有一个多节表视图,结构数组的数组效果很好,但现在忽略它。

只需为您的数据创建一个结构:

struct CompletedWorkout:
    folderName: String
    exercise: String
    exerciseName: String
    day: String
    date: String
    time: String
}

然后是这些结构的数组:

var completedWorkouts = [CompletedWorkout]()

然后,您可以根据需要使用 CompletedWorkout 项目填充该数组。

请注意,我可能没有正确捕获您想要的数据元素。此外,对于许多不同的属性,字符串类型可能不是最佳选择(例如,日期可能最好存储为类型

Date
。)

© www.soinside.com 2019 - 2024. All rights reserved.