teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

シングルトンをやめた

2020/04/20 14:07

投稿

TsukubaDepot
TsukubaDepot

スコア5086

answer CHANGED
@@ -1,15 +1,19 @@
1
+ 難しく考えすぎていました。
1
- イニシャライザなどで勝手に質問を追加されないようにするにはシングルトンしかないのかな、と思ったのですが、これは他の方のご意見もお伺いしたいところです。
2
+ ~~イニシャライザなどで勝手に質問を追加されないようにするにはシングルトンしかないのかな、と思ったのですが、これは~~他の方のご意見もお伺いしたいところです。
2
3
 
3
4
  こんな感じでしょうか。
4
5
 
5
6
  ```swift
6
7
  import UIKit
7
8
 
9
+ // final にして継承できなくする
8
- class Question01 {
10
+ final class Question01 {
11
+ //シングルトンはやめたので次の行はいらない
9
- static var sharedInstance = Question01()
12
+ //static var sharedInstance = Question01()
10
13
  private var questions: [() -> ()] = []
11
14
 
15
+ // シングルトンじゃないので private を消去
12
- private init() {
16
+ init() {
13
17
  questions.append(doQuestion01)
14
18
  questions.append(doQuestion02)
15
19
  questions.append(doQuestion03)
@@ -52,9 +56,10 @@
52
56
  print("Q6")
53
57
  }
54
58
  }
59
+ // シングルトンはやめたので普通にインスタンスを作る
60
+ //let q1 = Question01.sharedInstance
61
+ let q1 = Question01()
55
62
 
56
- let q1 = Question01.sharedInstance
57
-
58
63
  for i in 0..<q1.countOfQuestions() {
59
64
  q1.getQuestion(i)
60
65
  }