Как заменить NULL на Unknown из MediaItem в iOS?

Когда я получаю информацию о мультимедиа, например Artist, Album, название песни из MPMediaItem в iOS, однако в некоторых песнях нет имени исполнителя и альбома.

Итак, я получил возвращаемое значение с NULL

Вот мои коды

MPMediaItem *currentItem = self.player.nowPlayingItem;

    NSString *Artist = [currentItem valueForProperty:MPMediaItemPropertyArtist];
    NSString *Title = [currentItem valueForProperty:MPMediaItemPropertyTitle];
    NSString *Album = [currentItem valueForProperty:MPMediaItemPropertyAlbumTitle];

Если в песне нет имени исполнителя и альбома, возвращается NULL значение.

Я хочу заменить это значение NULL значением Unknown.

Как я могу заменить его?

Спасибо за ваше чтение.


person Fire Fist    schedule 12.01.2013    source источник


Ответы (2)


Если вы хотите быть элегантным, вы можете добавить категорию в MPMediaItem следующим образом:

@implementation MPMediaItem (Readable)

- (id)readableValueForProperty:(NSString *)prop
{
    id originalValue = [self valueForProperty:prop];

    if (originalValue == nil) {
        return @"Unknown";
    }

    return originalValue;
}

@end

Затем вы можете назвать это так:

NSString *artist = [currentItem readableValueForProperty:MPMediaItemPropertyArtist];

Обратите внимание, что это опасно, если вы получаете свойство, которое изначально не является NSString. Однако, если вы работаете только со строковыми значениями, это должно быть хорошо.

Подход, который всегда безопасен, но менее удобочитаем (и более избыточен), будет проверять каждое возвращаемое значение вручную:

NSString *artist = [currentItem valueForProperty:MPMediaItemPropertyArtist];
if (artist == nil) artist = @"Unknown";
person Community    schedule 12.01.2013
comment
Спасибо тебе большое бро. Я понял. :) - person Fire Fist; 12.01.2013

person    schedule
comment
Я не думаю, что [NSNull null] возвращается при обнаружении несуществующего свойства, это скорее nil или NULL. - person ; 12.01.2013