私はiOS用のswiftでクイズアプリケーションを構築しようとしています。私は450の質問を入れなければならないが、これは迅速なファイル上で多くの行を取るだろう。私の4つの質問には4行のコードがあり、約450の質問があることがわかります。質問を別のファイルから取得できるようにするために何をすべきかについての提案はありますか? RAMの過負荷が発生してアプリがクラッシュする可能性はありますか?ここに私のコードは次のとおりです。iOSアプリでクイズの質問を取得する方法と結果を印刷するには?
import UIKit
struct Question {
var Question: String!
var Answers: [String]!
var Answer: Int!
}
class LittleTestViewController: UIViewController {
//MARK: Properties
@IBOutlet weak var questionLabel: UILabel!
@IBOutlet var buttons: [UIButton]!
var Questions = [Question]()
var QNumber = Int()
var answerNumber = Int()
override func viewDidLoad() {
super.viewDidLoad()
Questions = [
Question(Question:"KEK1.Tα Συστήματα μη Επανδρωμένων Αεροσκαφών(ΣμηΕΑ) επιτρέπεται να ίπτανται:", Answers: ["α) Με μέγιστο ύψος τα 400 πόδια (FT) επάνω από το έδαφος ή την επιφάνεια της θάλασσας (AGL,MSL).","β)Εντός Προσωρινών Αποκλειστικών Περιοχών (Temporary Segregated Areas TSA) για πτήσεις ΣμηΕΑ.","γ)Σε καθορισμένα ίχνη και ύψη που προσδιορίζονται με ειδικές άδειες των Υπηρεσιών Εναέριας Κυκλοφορίας της ΥΠΑ.","δ) Όλες οι απαντήσεις είναι σωστές."], Answer: 3),
Question(Question:"ΚΕK2. Παρέχεται υπηρεσία Ελέγχου Εναέριας Κυκλοφορίας ‐ ΕΕΚ (Air Traffic Control‐ATC) στις πτήσεις ΣμηΕΑ;", Answers: ["α) Όχι, δεν παρέχονται υπηρεσίες εναέριας κυκλοφορίας ‐ ΕΚ (Air Traffic Services ‐ATS)","β) Ναι, παρέχεται υπηρεσία Ελέγχου Εναέριας Κυκλοφορίας (ATC).","γ) Όταν απαιτείται, οι Υπηρεσίες Εναέριας Κυκλοφορίας της ΥΠΑ εκδίδουν ειδικές άδειες και οδηγίες.","δ) Οι απαντήσεις α και γ είναι σωστές."], Answer: 3),
Question(Question:"KEK3. Τα ΣμηΕΑ (UAS) επιτρέπεται να πετούν:", Answers: ["α) Κάτω από ύψος 400 ποδιών, δηλαδή, κάτω από τα επιτρεπόμενα όρια για την κυκλοφορία επανδρωμένων αεροσκαφών.","β) Εντός προσωρινών περιοχών που προσδιορίζονται από τις υπηρεσίες εναέριας κυκλοφορίας της ΥΠΑ.","γ) Κάτω από ύψος 46.000 ποδιών, δηλαδή, κάνω από τα ανώτερα όρια του εναέριου χώρου για την κυκλοφορία επανδρωμένων αεροσκαφών.","δ) Οι απαντήσεις α και β είναι σωστές."], Answer: 3),
Question(Question:"ΚΕK4. Η διεξαγωγή Πτήσεων ΣμηΕΑ (UAS) απαγορεύεται γενικά σε εναέριο χώρο:", Answers: ["α) Σε περιοχές που διενεργούνται πτήσεις επανδρωμένων αεροσκαφών.","β) Σε απόσταση μικρότερη των 8 χιλιομέτρων από αεροδρόμια.","γ) Απαγορεύεται η πτήση ΣμηΕΑ (UAS) ανοικτής (Open) κατηγορίας επάνω από συγκεντρώσεις προσώπων.","δ) Όλες οι απαντήσεις είναι σωστές."], Answer: 3)]
pickQuestion()
}
func pickQuestion()
{
if Questions.count > 0 {
QNumber = Questions.count
questionLabel.text = Questions[QNumber].Question
answerNumber = Questions[QNumber].Answer
for i in 0..<buttons.count{
buttons[i].setTitle(Questions[QNumber].Answers[i], for: UIControlState.normal)
}
Questions.remove(at: QNumber)
}
else
{
NSLog("Done")
}
}
@IBAction func bt1(_ sender: Any) {
if answerNumber == 0 {
pickQuestion()
}
else
{
NSLog("Wrong!")
pickQuestion()
}
}
@IBAction func btn2(_ sender: Any) {
if answerNumber == 1 {
pickQuestion()
}
else
{
NSLog("Wrong!")
pickQuestion()
}
}
@IBAction func btn3(_ sender: Any) {
if answerNumber == 2 {
pickQuestion()
}
else
{
NSLog("Wrong!")
pickQuestion()
}
}
@IBAction func btn4(_ sender: Any) {
if answerNumber == 3 {
pickQuestion()
}
else
{
NSLog("Wrong!")
pickQuestion()
}
}
}
あなたのJSONファイルの名前は何ですか? – PGDev
ファイルがターゲットに含まれているかどうかを確認します。 – PGDev
また、jsonファイルに追加したjsonが正しい形式であることを確認します。 – PGDev