質問編集履歴
5
title
CHANGED
File without changes
|
body
CHANGED
@@ -39,13 +39,22 @@
|
|
39
39
|
Xcode8 swift3
|
40
40
|
|
41
41
|
|
42
|
-
###追記 2017.12.
|
42
|
+
###追記 2017.12.6
|
43
|
-
``MPMediaQuery.artists()``の``.collections``を代入した``artistCollections``の``artistCollections.count``がちゃんとアーティストの数になっているので、そこまでは順調だと思うのですが、
|
44
|
-
|
43
|
+
階層の解釈として、
|
45
44
|
|
45
|
+
``MPMediaQuery``
|
46
|
+
↓
|
47
|
+
``.artists()`` ← アーティストで分けますというメソッド
|
48
|
+
↓
|
46
|
-
|
49
|
+
``.collections`` ← 各アーティストがどのような曲(items)を持っているのかという情報
|
50
|
+
↓
|
51
|
+
``.items`` ← 各曲の詳細を内包した情報
|
52
|
+
↓
|
53
|
+
``.artist``など ←各曲の情報
|
47
54
|
|
48
|
-
|
55
|
+
これであっているでしょうか?
|
49
|
-
``data[indexPath.row].title``としたら、``MPMediaQuery.artists()``でアーティストのグループを利用していてもいなくても、ただの曲のテーブルビューができてしまいますよね・・・?
|
50
56
|
|
57
|
+
つまり、上記コードでは
|
51
|
-
|
58
|
+
アーティストの数だけfor文が回されているだけでなく、曲の数だけfor文が回されるのがアーティストの数だけ繰り返されていた
|
59
|
+
|
60
|
+
ということですかね?
|
4
追記の追記しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -46,4 +46,6 @@
|
|
46
46
|
最終的にテーブルビューに入れるときには、``data[indexPath.row].artist``といったようにアーティストのプロパティ(``.artist ``)をもう一度指定しているあたりの仕組みがわかりません・・・
|
47
47
|
|
48
48
|
せっかく``MPMediaQuery.artists()``でグループを指定しているのに、結局、曲単位でとりだしていますよね・・・
|
49
|
-
``data[indexPath.row].title``としたら、``MPMediaQuery.artists()``でアーティストのグループを利用していてもいなくても、ただの曲のテーブルビューができてしまいますよね・・・?
|
49
|
+
``data[indexPath.row].title``としたら、``MPMediaQuery.artists()``でアーティストのグループを利用していてもいなくても、ただの曲のテーブルビューができてしまいますよね・・・?
|
50
|
+
|
51
|
+
もしかして、``MPMediaQuery.artists()``とは、曲の順序をアーティスト名順にするという意味なのでしょうか。。。
|
3
加筆
title
CHANGED
File without changes
|
body
CHANGED
@@ -36,4 +36,14 @@
|
|
36
36
|
``MediaQuery``が曲ごとに各``.artists()``やら``.albums()``を参照しているからなのだろうとは思うのですが、``OrderedSet``などで重複を削除しようにも、どうしたらいいのか・・・
|
37
37
|
|
38
38
|
###補足情報(言語/FW/ツール等のバージョンなど)
|
39
|
-
Xcode8 swift3
|
39
|
+
Xcode8 swift3
|
40
|
+
|
41
|
+
|
42
|
+
###追記 2017.12.5
|
43
|
+
``MPMediaQuery.artists()``の``.collections``を代入した``artistCollections``の``artistCollections.count``がちゃんとアーティストの数になっているので、そこまでは順調だと思うのですが、
|
44
|
+
for文で**アーティスト数の数だけ繰り返し**の処理をしているつもりなのですが、
|
45
|
+
|
46
|
+
最終的にテーブルビューに入れるときには、``data[indexPath.row].artist``といったようにアーティストのプロパティ(``.artist ``)をもう一度指定しているあたりの仕組みがわかりません・・・
|
47
|
+
|
48
|
+
せっかく``MPMediaQuery.artists()``でグループを指定しているのに、結局、曲単位でとりだしていますよね・・・
|
49
|
+
``data[indexPath.row].title``としたら、``MPMediaQuery.artists()``でアーティストのグループを利用していてもいなくても、ただの曲のテーブルビューができてしまいますよね・・・?
|
2
artistItems -> artistCollections
title
CHANGED
File without changes
|
body
CHANGED
@@ -6,8 +6,8 @@
|
|
6
6
|
func getArtistInfo() -> Array<MPMediaItem> {
|
7
7
|
var array = Array<MPMediaItem>()
|
8
8
|
let artistQuery: MPMediaQuery = MPMediaQuery.artists()
|
9
|
-
let
|
9
|
+
let artistCollections: [MPMediaItemCollection] = artistQuery.collections!
|
10
|
-
for artist in
|
10
|
+
for artist in artistCollections {
|
11
11
|
let artistItems: [MPMediaItem] = artist.items
|
12
12
|
for artists in artistItems {
|
13
13
|
array.append(artists)
|
1
songs -> artists
title
CHANGED
File without changes
|
body
CHANGED
@@ -9,8 +9,8 @@
|
|
9
9
|
let artistItems: [MPMediaItemCollection] = artistQuery.collections!
|
10
10
|
for artist in artistItems {
|
11
11
|
let artistItems: [MPMediaItem] = artist.items
|
12
|
-
for
|
12
|
+
for artists in artistItems {
|
13
|
-
array.append(
|
13
|
+
array.append(artists)
|
14
14
|
}
|
15
15
|
}
|
16
16
|
return array
|