2011-02-01 2 views
5

다음 코드를 시도 : 나는 NSDates ... 에 대한하지만 날짜를 볼 수 있습니다 아이팟 라이브러리에 전무 년대 얻을 모든 경우에iPod 라이브러리의 항목에 대한 앨범 연도를 가져 옵니까?

// Per albums 
MPMediaQuery *albumsQuery = [MPMediaQuery albumsQuery]; 
NSArray *collections = [albumsQuery collections]; 

for (MPMediaItemCollection *collection in collections) 
{ 
    NSDate *collectionReleaseDate = [collection valueForProperty: MPMediaItemPropertyReleaseDate]; 
    NSLog(@"collection release date: %@", collectionReleaseDate); 

    MPMediaItem *representativeItem = [collection representativeItem]; 
    NSDate *representativeItemReleaseDate = [representativeItem valueForProperty: MPMediaItemPropertyReleaseDate]; 
    NSLog(@"representativeItem release date: %@", representativeItemReleaseDate); 
} 

// Just per item 
MPMediaQuery *query = [[MPMediaQuery alloc] init]; 
NSArray *items = [query items]; 

for (MPMediaItem *item in items) 
{ 
    NSDate *date = [item valueForProperty: MPMediaItemPropertyReleaseDate]; 
    NSLog(@"release date: %@", date); 
} 

를, 그래서 정보를 사용할 수 있어야합니다. 올바른 방법은 무엇입니까?

+0

출시 날짜가 아이폰 OS 4 이상을 사용하는 경우에만 액세스 할 수 있습니다 :

또한 불행하게도 문서화되지 않은 방법으로, (I 필요) '올해의 정보를 얻는 방법을 발견했다. 타겟 버전이 무엇입니까? –

+0

iOS SDK 4.2, 배포 대상 = iOS 4.0 사용, 4.2.1의 iPad 및 4.2.1의 iPod 2 세대에서 테스트 ... – ivanzoid

답변

19

음, 생각났습니다. iTunes의 'Year'열이 API의 MPMediaItemPropertyReleaseDate에 해당한다고 생각했습니다.하지만 잘못된 것입니다. 내 항목에 실제로 출시 날짜 정보가 없었습니다.

MPMediaItem *item = ...; 
NSNumber *yearNumber = [item valueForProperty:@"year"]; 
if (yearNumber && [yearNumber isKindOfClass:[NSNumber class]]) 
{ 
    int year = [yearNumber intValue]; 
    if (year != 0) 
    { 
     // do something with year 
    } 
} 
+0

iOS 5.1에서도 유효합니다./그러나 수정 해 주셔서 감사합니다! – miho

+0

이 ios6에서 작동하지 않습니다. – Andy

+0

@Andy Works for iOS 6.0 for me. – soheilpro

관련 문제