質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

481閲覧

Swift 多くの文章や画像をひとつずつ同じtextviewやimageviewで表示したい

mochi0503

総合スコア1

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2021/09/29 19:44

Swiftでクイズアプリのようなものを作りたいのですが、問題数が多く、たくさんの文章や画像を同じ場所にひとつずつ表示する時、どのようにデータを整理して呼び出せば良いかわかりません。csvファイルとかでできるのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Swift だけでは何も分かりませんので Xcode で iOS/macOS を作るつもりだとします。

たくさんの文章

CSV もなくはないですが、オンラインで配信するなら JSON、アプリケーションへのバンドルで完結させるならプロパティリスト(Property List)が使われます。とくにプロパティリストはファイルを NSArray または NSDictionary として直接読み込めるので便利です。

Xcode でのプロパティリスト編集:

次のように問題文と三択の回答をセットで持たせることもできます。

イメージ説明

アプリでの読み込み:

swift

1if let path = Bundle.main.path(forResource: "questions", ofType: "plist") { 2 if let questions = NSArray(contentsOfFile: path) { 3 // ... 4 } 5}

画像

PNG や JPEG の画像ファイルをそのままバンドルすることもできますが、これも通常はアセットカタログ(.xcassets)を使用します。

Xcode でのアセットカタログの編集:

ディスプレイの精細さに合わせたそれぞれの倍率をまとめて格納できます。倍率を無効にしひとつの画像で済ますこともできます。

イメージ説明

アプリでの読み込み:

swift

1if let image = UIImage(named: "question1.jpg") { 2 // ... 3}

どう整理するかは開発者次第ですが、プロパティリストとアセットカタログが基本なのでそれで始めるといいかと思います。

出題数が数千・数万件もあるようなら SQLite3 などのデータベースになるかと。CoreData というのも聞いたことがあるかもしれませんが、アプリ上でデータを編集しないのであればその多機能さを活かす場面がないので無駄が多くなります。

投稿2021/09/30 01:54

編集2021/09/30 01:55
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mochi0503

2021/09/30 08:20

漠然とした質問に対しての的確な回答本当にありがとうございます!具体例も出していただき分かりやすいです。まずはプロパティリストで頑張って作ってみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問