6.クイズソフト
9170 ワード
最終的な姿.
クイズアプリ
可変不変性;構造体宣言と使用;関数宣言と使用を返す;
MVC設計モードの学習、内部パラメータと外部パラメータの宣言
Initはコンストラクション関数として機能するため,宣言後,生成時の初期化を上記のように支援することができる.
使用
使用方法:
使用
使用方法:
パラメータは、関数で使用するために導入された感覚変数です.したがって、関数を使用するときに一緒に加えられる変数です.ただし、パラメータの名前が長すぎたり、同じ名前になったりすると、混乱する可能性があります.このような状況を防止するために、sweetのタグは外部パラメータが宣言名なしで入力されることを許可し、内部パラメータは元の方法で使用することができる.
これはどういう意味ですか.
このキーワードは、構造体内部で宣言された変数を変更できるキーワードです.
mutatingを追加せずに構造内の変数を任意に変更しようとすると、Xコード自体にエラーが投げ出されます.これは,構造内の変数が本来修正不可能であるためである.したがって,これは突然変異と修正の権限を与えたことに等しい.
他の文字が整理されているので、実際のアプリの様子で勉強してみました.
モデルは、名前の通り、アプリケーション全体のデータと処理を網羅するコード部分です.クイズアプリケーションには、初期化を支援するクイズファイル、クイズ、カウントなどを処理するQuizBrainファイルがあります.
ビューは、ユーザーインタフェースを管理する場所です.このため、ストーリーボードはその中にあり、ユーザが望む情報を直感的に表示することができる.
コントローラは,ユーザがユーザインタフェースで選択した情報をモデルに委任して処理し,処理後の情報をビューに返信する.実はここがメインです.モデルの情報がどれだけあるかにかかわらず、コントローラが正常な情報を提供しないか、またはブロックしない場合、アプリケーションは競合によって停止します.アプリケーションの最新情報を更新することは、主に情報を更新する役割を果たします.
MVC、外部パラメータ、mutatingなど今回の制作の応用は本当にたくさん学びました.頭にどれだけ残っているかはわかりませんが、今はこんな簡単なアプリが作れます!ますます進歩してきたような気がして、気持ちがいいです.もっと頑張ろう!
クイズアプリ
プロジェクト学習
可変不変性;構造体宣言と使用;関数宣言と使用を返す;
MVC設計モードの学習、内部パラメータと外部パラメータの宣言
こうぞうたい
struct Question {
let text: String
let answer: Array<Any>
let correctAnswer: String
init(q: String, a: Array<Any>,correctAnswer: String) {
text = q
answer = a
self.correctAnswer = correctAnswer
}
}
他の言語で使われている構造体と似ています.似ていません.しかし、アプリケーションを構成するには、構造体を熟知しなければならない.MVCデザインモードではさらに必要になります.Initはコンストラクション関数として機能するため,宣言後,生成時の初期化を上記のように支援することができる.
使用
使用方法:
var quizBrain = QuizBrain()
使用できます.戻り関数の宣言と使用
func getQuestionText() -> String {
return quiz[questionNumber].text
}
上記のコードに示すようにfuncとして宣言し、->矢印を使用して戻り値を指定します.後で返却値を同じに変更すればいいです.使用
使用方法:
questionLabel.text = quizBrain.getQuestionText()
このようにラベルを更新するときに使用します.内部パラメータ、外部パラメータ、mutating
struct QuizBrain {
var questionNumber = 0
var scoreNumber = 0
// _ 외부 매개변수 이름으로 저기에 user을 넣어서 사용할 수 있지만,
// 이름의 혼동을 막기 위해 _을 사용하면 그냥 넣어줄 변수의 이름만 넣으면 된다.
mutating func checkAnswer(_ userChoice: String) -> Bool {
if userChoice == quiz[questionNumber].correctAnswer {
scoreNumber += 1
return true
} else {
return false
}
}
まずパラメータについてお話ししましょうパラメータは、関数で使用するために導入された感覚変数です.したがって、関数を使用するときに一緒に加えられる変数です.ただし、パラメータの名前が長すぎたり、同じ名前になったりすると、混乱する可能性があります.このような状況を防止するために、sweetのタグは外部パラメータが宣言名なしで入力されることを許可し、内部パラメータは元の方法で使用することができる.
これはどういう意味ですか.
// 원래 선언
let userGotItRight = quizBrain.checkAnswer(userChoice: userAnswer)
// 외부 매개변수 사용시
let userGotItRight = quizBrain.checkAnswer(userAnswer)
このように、関数の外部で使用する場合は、そのように省略することができます.(外部パラメータ名は設定できません.別の名前を使用できます)mutating
// 같은 구조체에 위치하는 let 변수인 questionNumber를 같은 곳에서 수정하려고 하니 에러가 발생했다.
// 따라서 이 변수를 변경 가능하게끔 만들기 위해선 mutating을 선언하면 된다.
mutating func checkAnswer(_ userChoice: String) -> Bool {
if userChoice == quiz[questionNumber].correctAnswer {
scoreNumber += 1
return true
} else {
return false
}
}
上のコードを見てください.関数を宣言するコードの前にキーワードmutatingを追加しました.このキーワードは、構造体内部で宣言された変数を変更できるキーワードです.
mutatingを追加せずに構造内の変数を任意に変更しようとすると、Xコード自体にエラーが投げ出されます.これは,構造内の変数が本来修正不可能であるためである.したがって,これは突然変異と修正の権限を与えたことに等しい.
MVCデザインモード
他の文字が整理されているので、実際のアプリの様子で勉強してみました.
M(Model)
モデルは、名前の通り、アプリケーション全体のデータと処理を網羅するコード部分です.クイズアプリケーションには、初期化を支援するクイズファイル、クイズ、カウントなどを処理するQuizBrainファイルがあります.
V(View)
ビューは、ユーザーインタフェースを管理する場所です.このため、ストーリーボードはその中にあり、ユーザが望む情報を直感的に表示することができる.
C(Controller)
コントローラは,ユーザがユーザインタフェースで選択した情報をモデルに委任して処理し,処理後の情報をビューに返信する.実はここがメインです.モデルの情報がどれだけあるかにかかわらず、コントローラが正常な情報を提供しないか、またはブロックしない場合、アプリケーションは競合によって停止します.アプリケーションの最新情報を更新することは、主に情報を更新する役割を果たします.
に感銘を与える
MVC、外部パラメータ、mutatingなど今回の制作の応用は本当にたくさん学びました.頭にどれだけ残っているかはわかりませんが、今はこんな簡単なアプリが作れます!ますます進歩してきたような気がして、気持ちがいいです.もっと頑張ろう!
Reference
この問題について(6.クイズソフト), 我々は、より多くの情報をここで見つけました https://velog.io/@kirri1124/6.-퀴즈-앱テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol