2

そして、お時間をいただきありがとうございます。

iPhoneアプリの特定のタイプのプレイリストを除外しようとしています(具体的には、天才と外出先)。ドキュメントによると、プロパティ属性 MPMediaPlaylistPropertyPlaylistAttributes は、NSInteger オブジェクトを含む NSNumber の形式で、プレイリストに関連付けられた属性を返します。ドキュメントには、そのプロパティの次の可能な値もリストされています。

e

num {
   MPMediaPlaylistAttributeNone    = 0,
   MPMediaPlaylistAttributeOnTheGo = (1 << 0),
   MPMediaPlaylistAttributeSmart   = (1 << 1),
   MPMediaPlaylistAttributeGenius  = (1 << 2)
};
typedef NSInteger MPMediaPlaylistAttribute;

値を端末に記録したいので、使用しました

NSLog(@"プレイリスト属性値:%@", [[プレイリスト値ForProperty:MPMediaPlaylistPropertyPlaylistAttributes] stringValue]);

ただし、毎回 0 の値が出力されます。これは、すべてのプレイリストが属性「MPMediaPlaylistAttributeNone」を持っていることを意味しますが、多くの天才的プレイリストや移動中のプレイリストも通過しているため、これは意味がありません。

ここに私のコード全体があります:

MPMediaQuery *myPlaylistsQuery = [MPMediaQuery playlistsQuery];
    NSLog(@"number of playlists total:%d", [[myPlaylistsQuery collections] count]);
    NSArray *playlists = [myPlaylistsQuery collections];

    for (MPMediaPlaylist *playlist in playlists) {

        NSInteger theAttributes;

        theAttributes = [[playlist valueForProperty:MPMediaPlaylistPropertyPlaylistAttributes] integerValue];
        NSLog(@"attribute:%d of playlist:%@", theAttributes, [playlist valueForProperty:MPMediaPlaylistPropertyName]);
    }

これが私のiPhoneでアプリケーションを実行したときの結果です。これらのプレイリストの多くは、実際には天才的なプレイリストです。

プレイリストの属性:0:購入済み

プレイリストの属性:0:iPhone で購入

プレイリストの属性:0:Army of Them

プレイリストの属性:0:青

プレイリストの属性:0:Closer

プレイリストの属性:0:クレイジー

プレイリストの属性:0:Mad About You

プレイリストの属性:0:ミッドナイト

属性:0 のプレイリスト:Something Elephants

プレイリストの属性:0:超大質量ブラック ホール

プレイリストの属性:0:テイク・ミー・アウェイ

プレイリストの属性:0:The Mixed Tape

プレイリストの属性:0:時間

プレイリストの属性:0:オール アラウンド ミー

プレイリストの属性:0:アンナの CD

属性:0 のプレイリスト:Av

プレイリストの属性:0:av 2

プレイリストの属性:0:Believe

属性:0 のプレイリスト:BH

属性:0 の再生リスト:Boulevard of Broken Dreams

属性:0 のプレイリスト:車 1

属性:0 のプレイリスト:車 2

属性:0 のプレイリスト:車 3

すべてのプレイリストの属性が 0 になっている理由を教えてください。

繰り返しますが、お時間をいただきありがとうございます。

4

4 に答える 4

0

NSIntegerは単なるプリミティブtypedefです。

typedef long NSInteger;

これは主に、32ビット/64ビットプロセッサ間の問題を回避するために使用されると思います。通常のintのように扱い、文字列フォーマッタに渡すときは%dを使用します。または、問題全体を回避して[val intValue];、通常のintを返すものを使用します。

于 2009-07-09T04:42:00.457 に答える
0

これを試して。正常に動作します。@iは整数を出力します

NSInteger theAttributes; theAttributes = [[playlist valueForProperty:MPMediaPlaylistPropertyPlaylistAttributes] integerValue]; NSLog(@"attribute:%i of playlist:%@", theAttributes, [playlist valueForProperty:MPMediaPlaylistPropertyName]);
于 2011-01-10T02:01:24.450 に答える
0

とは異なりNSNumber、 aはオブジェクトではないため、印刷する代わりにNSInteger使用したい...%d%@

于 2009-07-09T03:00:57.807 に答える