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

質問編集履歴

5

2017/12/06 03:56

投稿

mitci
mitci

スコア37

title CHANGED
File without changes
body CHANGED
@@ -39,13 +39,22 @@
39
39
  Xcode8 swift3
40
40
 
41
41
   
42
- ###追記 2017.12.5
42
+ ###追記 2017.12.6
43
- ``MPMediaQuery.artists()``の``.collections``を代入した``artistCollections``の``artistCollections.count``がちゃんとアーティストの数になっているので、そこまでは順調だと思うのですが、
44
- for文で**アーティスト数数だけ繰り返**の処理をしいるつもりなのですが
43
+ 階層解釈として、
45
44
 
45
+ ``MPMediaQuery``
46
+
47
+ ``.artists()`` ← アーティストで分けますというメソッド
48
+
46
- 最終的にテーブルビューに入れるときには、``data[indexPath.row].artist``といったようにアーティストのプロパティ(``.artist ``)をも一度指定しているあたり仕組みがわりません・・・
49
+ ``.collections`` ← 各アーティストがどな曲(items)を持っているのかという情報
50
+
51
+ ``.items`` ← 各曲の詳細を内包した情報
52
+
53
+ ``.artist``など ←各曲の情報
47
54
 
48
- せっかく``MPMediaQuery.artists()``グループを指定しているのに、結局、曲単位とりだていますよね・・・
55
+ これあっているでしょうか?
49
- ``data[indexPath.row].title``としたら、``MPMediaQuery.artists()``でアーティストのグループを利用していてもいなくても、ただの曲のテーブルビューができてしまいますよね・・・?
50
56
 
57
+ つまり、上記コードでは
51
- もしかして、``MPMediaQuery.artists()``とは、曲の順序をアーティスト名順にするという意味なでしょうか。。。
58
+ アーティストの数だけfor文が回されいるだけでなく、曲の数だけfor文が回されるのがアーティストの数だけ繰り返されていた
59
+
60
+ ということですかね?

4

追記の追記しました。

2017/12/06 03:56

投稿

mitci
mitci

スコア37

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

加筆

2017/12/05 12:32

投稿

mitci
mitci

スコア37

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

2017/12/05 12:25

投稿

mitci
mitci

スコア37

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 artistItems: [MPMediaItemCollection] = artistQuery.collections!
9
+ let artistCollections: [MPMediaItemCollection] = artistQuery.collections!
10
- for artist in artistItems {
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

2017/12/05 11:47

投稿

mitci
mitci

スコア37

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 songs in artistItems {
12
+ for artists in artistItems {
13
- array.append(songs)
13
+ array.append(artists)
14
14
  }
15
15
  }
16
16
  return array