質問編集履歴
5
test
CHANGED
File without changes
|
test
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
|
11
11
|
|
12
12
|
|
13
|
-
1つ目のコードの20行目の`var cymbalPlayer = AVAudioPlayer()`は`AVAudioPlayer`のインスタンを生成していますが,なぜ
|
13
|
+
1つ目のコードの20行目の`var cymbalPlayer = AVAudioPlayer()`は`AVAudioPlayer`のインスタンを生成していますが,なぜ引数を渡すことなくインスタンを生成できるのでしょうか.
|
14
14
|
|
15
15
|
|
16
16
|
|
@@ -140,7 +140,7 @@
|
|
140
140
|
|
141
141
|
### 追加
|
142
142
|
|
143
|
-
`インスタンスを生成した後に,イ
|
143
|
+
`引数なしのインスタンスを生成した後に,引数ありのインスタンスを代入する`という観点からみれば下のコードのような意味不明なコードになると思うのですが,なぜ`AVAudioPlayer`は許されるのでしょうか.
|
144
144
|
|
145
145
|
```swift
|
146
146
|
|
4
文法の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -138,6 +138,32 @@
|
|
138
138
|
|
139
139
|
```
|
140
140
|
|
141
|
+
### 追加
|
142
|
+
|
143
|
+
`インスタンスを生成した後に,イニシャライザを指定している`という観点からみれば下のコードのような意味不明なコードになると思うのですが,なぜ`AVAudioPlayer`は許されるのでしょうか.
|
144
|
+
|
145
|
+
```swift
|
146
|
+
|
147
|
+
class A {
|
148
|
+
|
149
|
+
init(string: String){
|
150
|
+
|
151
|
+
}
|
152
|
+
|
153
|
+
}
|
154
|
+
|
155
|
+
|
156
|
+
|
157
|
+
var a = A()
|
158
|
+
|
159
|
+
a = A(string: "~~~")
|
160
|
+
|
161
|
+
```
|
162
|
+
|
163
|
+
|
164
|
+
|
165
|
+
|
166
|
+
|
141
167
|
環境
|
142
168
|
|
143
169
|
xcode:10
|
3
文法の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -20,7 +20,7 @@
|
|
20
20
|
|
21
21
|
|
22
22
|
|
23
|
-
あるクラスのインスタンスを生成するときはイニシャライザのための引数を渡す必要がありますよね?
|
23
|
+
引数なしのイニシャライザであれば引数を渡さずにインスタンスを生成しますが,引数ありのイニシャライザを保有しているクラスのインスタンスを生成するときはイニシャライザのための引数を渡す必要がありますよね?
|
24
24
|
|
25
25
|
|
26
26
|
|
2
文法の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -10,17 +10,17 @@
|
|
10
10
|
|
11
11
|
|
12
12
|
|
13
|
-
1つ目のコードの20行目の`
|
13
|
+
1つ目のコードの20行目の`var cymbalPlayer = AVAudioPlayer()`は`AVAudioPlayer`のインスタンを生成していますが,なぜイニシャライザを呼び出すことなくインスタンを生成できるのでしょうか.
|
14
14
|
|
15
15
|
|
16
16
|
|
17
|
-
私は2つ目のコードの
|
17
|
+
私は2つ目のコードのように書く必要があると思うのですが,これだと音が一瞬しかな流れないということはわかります.
|
18
|
-
|
19
|
-
なぜでしょうか.
|
20
18
|
|
21
19
|
|
22
20
|
|
21
|
+
|
22
|
+
|
23
|
-
|
23
|
+
あるクラスのインスタンスを生成するときはイニシャライザのための引数を渡す必要がありますよね?
|
24
24
|
|
25
25
|
|
26
26
|
|
@@ -40,8 +40,6 @@
|
|
40
40
|
|
41
41
|
super.viewDidLoad()
|
42
42
|
|
43
|
-
// Do any additional setup after loading the view, typically from a nib.
|
44
|
-
|
45
43
|
}
|
46
44
|
|
47
45
|
|
@@ -50,19 +48,13 @@
|
|
50
48
|
|
51
49
|
super.didReceiveMemoryWarning()
|
52
50
|
|
53
|
-
// Dispose of any resources that can be recreated.
|
54
|
-
|
55
51
|
}
|
56
52
|
|
57
53
|
|
58
54
|
|
59
|
-
// シンバルの音源ファイルを指定
|
60
|
-
|
61
55
|
let cymbalPath = Bundle.main.bundleURL.appendingPathComponent("cymbal.mp3")
|
62
56
|
|
63
57
|
|
64
|
-
|
65
|
-
// シンバル用のプレイヤーインスタンスを作成
|
66
58
|
|
67
59
|
var cymbalPlayer = AVAudioPlayer()
|
68
60
|
|
@@ -72,19 +64,15 @@
|
|
72
64
|
|
73
65
|
do {
|
74
66
|
|
75
|
-
// シンバル用のプレイヤーに、音源ファイル名を指定
|
76
|
-
|
77
67
|
cymbalPlayer = try AVAudioPlayer(contentsOf: cymbalPath, fileTypeHint: nil)
|
78
68
|
|
79
69
|
|
80
|
-
|
81
|
-
// シンバルの音源再生
|
82
70
|
|
83
71
|
cymbalPlayer.play()
|
84
72
|
|
85
73
|
} catch {
|
86
74
|
|
87
|
-
print("シンバルで、エラーが発生しました
|
75
|
+
print("シンバルで、エラーが発生しました")
|
88
76
|
|
89
77
|
}
|
90
78
|
|
@@ -112,8 +100,6 @@
|
|
112
100
|
|
113
101
|
super.viewDidLoad()
|
114
102
|
|
115
|
-
// Do any additional setup after loading the view, typically from a nib.
|
116
|
-
|
117
103
|
}
|
118
104
|
|
119
105
|
|
@@ -122,13 +108,9 @@
|
|
122
108
|
|
123
109
|
super.didReceiveMemoryWarning()
|
124
110
|
|
125
|
-
// Dispose of any resources that can be recreated.
|
126
|
-
|
127
111
|
}
|
128
112
|
|
129
113
|
|
130
|
-
|
131
|
-
// シンバルの音源ファイルを指定
|
132
114
|
|
133
115
|
let cymbalPath = Bundle.main.bundleURL.appendingPathComponent("cymbal.mp3")
|
134
116
|
|
@@ -138,19 +120,15 @@
|
|
138
120
|
|
139
121
|
do {
|
140
122
|
|
141
|
-
// シンバル用のプレイヤーインスタンスを作成
|
142
|
-
|
143
123
|
var cymbalPlayer = try AVAudioPlayer(contentsOf: cymbalPath, fileTypeHint: nil)
|
144
124
|
|
145
125
|
|
146
|
-
|
147
|
-
// シンバルの音源再生
|
148
126
|
|
149
127
|
cymbalPlayer.play()
|
150
128
|
|
151
129
|
} catch {
|
152
130
|
|
153
|
-
print("シンバルで、エラーが発生しました
|
131
|
+
print("シンバルで、エラーが発生しました")
|
154
132
|
|
155
133
|
}
|
156
134
|
|
1
test
CHANGED
File without changes
|
test
CHANGED
File without changes
|