Swift 3 - 存储值,元组,数组等的正确方法?

时间:2017-07-24 17:38:06

标签: arrays swift swift3 tuples

我正在开展一个小型项目,我正在播放嵌入我的应用程序的可用MP3列表 - 一个教育应用程序。

我已经尽力找到答案,但我似乎无法找到合适的东西,所以我平常的事情 - 如果这是重复的话,我已经搜索过我最难找到的东西第一

MP3被命名为与每个30章的5个单位重合。

我正在尝试找到一种存储和检索正确章节的方法,类似于:

学习单元#Chapter ##。mp3

我想知道存储和/或调用正确的单位和章节的最佳方法是什么。

我目前正在使用两个表格视图来选择单元#和章节/课程#。

该数据被传递到播放所需MP3的视图,所以我传递了两个变量,都是Int。#。

我在这里尝试的,我意识到完全错误,应该说明我正在尝试(希望)做什么:

import Foundation

class LessonPlan {

var lessonMatrix = [(unit:Int,chapter:Int,filename:String)];

init() {
    for unitNo in 1 ... 5 {

        for chapterNo in 1 ... 30 {
            chapterWithLeadingZeros = String(format: "%02d", chapterNo)
            lessonMatrix.append(unit:unitNo, chapter:chapterNo, filename:"Learning Unit \(unitNo) Chapter \(chapterWithLeadingZeros).mp3")
            }
        }


    }
}

我意识到上面没有编译,但它是我的思考过程。

感谢您提供的任何指示。

Swift3 / Xcode 8.3.1,尝试定位iOS9。

1 个答案:

答案 0 :(得分:1)

这就是我要这样做的方式:

import Foundation

struct Lesson {
    let unit: Int
    let chapter: Int

    var chapterWithLeadingZeros: String { return String(format: "%02d", chapter) }

    var filename: String { return "Learning Unit \(unit) Chapter \(chapterWithLeadingZeros).mp3" }
}

class LessonPlan {
    var lessons = (1...5).flatMap { unit in
        (1...30).flatMap { chapter in
            Lesson(unit: unit, chapter: chapter) 
        }
    }
}

print(LessonPlan().lessons)