CS193p 2021 #3 MVVM

--

影片

課程範例

model,MemoryGame.swift

import Foundationstruct MemoryGame<CardContent> {
private(set) var cards: Array<Card>

func choose(_ card: Card) {

}

init(numberOfPairsOfCards: Int, createCardContent: (Int) -> CardContent) {
cards = Array<Card>()
for pairIndex in 0..<numberOfPairsOfCards {
let content = createCardContent(pairIndex)
cards.append(Card(content: content))
cards.append(Card(content: content))
}
}

struct Card {
var isFaceUp = true
var isMatched = false
var content: CardContent
}
}

view model,EmojiMemoryGame.swift

import Foundationclass EmojiMemoryGame {

static let emojis = ["🚲", "🚂", "🚁", "🚜", "🚕", "🏎", "🚑", "🚓", "🚒", "✈️", "🚀", "⛵️", "🛸", "🛶", "🚌", "🏍", "🛺", "🚠", "🛵", "🚗", "🚚", "🚇", "🛻", "🚝"]

static func createMemoryGame() -> MemoryGame<String> {
MemoryGame<String>(numberOfPairsOfCards: 4) { pairIndex in
emojis[pairIndex]
}
}

private var model = createMemoryGame()

var cards: Array<MemoryGame<String>.Card> {
return model.cards
}
}

view,ContentView.swift

尚未調整,程式同 Lecture 2。在 Lecture 4 時 view 將串接 view mode。

--

--

彼得潘的 iOS App Neverland
彼得潘的 iOS App Neverland

Written by 彼得潘的 iOS App Neverland

彼得潘的 Swift iOS App 程式設計入門,文組生的 Swift iOS App 程式設計入門,彼得潘的 Flutter 跨平台 App 程式設計入門講師,彼得潘的 Swift 程式設計入門,App程式設計入門作者,http://apppeterpan.strikingly.com

No responses yet