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

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

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

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

Q&A

2回答

188閲覧

クラスでデータを管理する方法

退会済みユーザー

退会済みユーザー

総合スコア0

Swift

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

0グッド

0クリップ

投稿2019/06/15 14:56

編集2019/06/15 14:56

クラスでデータを管理したいのですが、クラスを使っての書き方がいまいちわからないです。
宣言文だけをクラスでくくったのですが、これでよろしいのでしょうか。
この宣言文をクラスで囲む前は、エラーが出てなかったのですが宣言文だけをクラスで囲ったらエラーが出ます。

import UIKit class ViewController: UIViewController { class Monster { var position :Int = 0 var date: [String] = ["モンスター1","モンスター2","モンスター3"] var imagedate: [String] = ["monster004.png","monster002.png","monster001.png"] } @IBOutlet weak var label: UILabel! @IBOutlet weak var imageView: UIImageView! @IBAction func nextbutton(_ sender: Any) { if position < 2 { position += 1 } label.text = date[position] imageView.image=UIImage(named: imagedate[position]) } @IBAction func backbutton(_ sender: Any) { if position > 0 { position -= 1 } label.text = date[position] imageView.image=UIImage(named: imagedate[position]) } override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view.

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

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

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

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

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

takabosoft

2019/06/17 00:15

> クラスでデータを管理したい 何をどんな風に管理したいのでしょうか?
退会済みユーザー

退会済みユーザー

2019/06/18 02:02

クラスには画像と名前が組になってて、それをインスタンスにしたものを配列に入れるかたちにしたいんです。
guest

回答2

0

クラスには画像と名前が組になってて、それをインスタンスにしたものを配列に入れるかたちにしたいんです。

発注通りに作るとだいたいこんな感じです。
(本当にこれだけならタプルで実装してもいいですが)

swift

1 class Monster { 2 init(name: String, imageName: String) { 3 self.name = name 4 self.imageName = imageName 5 } 6 7 let name: String 8 let imageName: String 9 } 10 11 let monsters: [Monster] = [ 12 Monster(name: "モンスター1", imageName: "monster004.png"), 13 Monster(name: "モンスター2", imageName: "monster002.png"), 14 Monster(name: "モンスター3", imageName: "monster001.png"), 15 ]

投稿2019/06/18 08:21

takabosoft

総合スコア8356

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

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

0

クラスにした場合プロパティへのアクセス方法が変わります

Swift

1//こいつを通してpositionなどにアクセスする 2let monster: Monster! = nil 3 4label.text = monster.date[monster.position]

余談ですがMonsterが何体かいるとしたら再利用できた方が良いので以下の様につくってみては?

Swift

1class Monster { 2 let position: Int 3 let data:[String] 4 let imageData:[String] 5 init(position: Int, data: [String], imageData: [String]) { 6 self.position = position 7 self.data = data 8 self.imageData = imageData 9 } 10}

投稿2019/06/18 01:58

harumi

総合スコア407

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問