2017-02-16 2 views
0

Я пытаюсь создать приложение, которое будет работать с iTunes. Таким образом, я импортировал базу в мой проект и создал небольшой класс, только для целей обучения следующим образом:Как создать новый объект ITLibMediaItem?

-(NSMutableArray *)processMediaItems:(NSArray *)mediaItems { 
    NSMutableArray *titles = [NSMutableArray new]; 

    if (mediaItems) { 
     for (ITLibMediaItem *item in mediaItems) { 
      [titles addObject:[item.title]]; 
     } 
    } 
    return titles; 
} 

Тогда я решил создать модульный тест для него, и сделал следующее:

- (void)testExample {  
    ITLibMediaItem *mediaItem = [[ITLibMediaItem alloc] init]; 
    //mediaItem.title = @"I Still Haven't Found What I'm Looking For"; 

    NSMutableArray *mediaItems = [NSMutableArray new]; 
    [mediaItems addObject:mediaItem]; 

    MyClass *mc = [MyClass new]; 
    NSMutableArray *titles = [mc processMediaItems:mediaItems]; 
} 

Проблема в том, что свойство title является только для чтения.

Итак, мой вопрос: как мне создать новый объект ITLibMediaItem с заголовком? Я попытался прочитать API (ITLibMediaItem), но не нашел инициализации, которая могла бы помочь ...

ответ

0

Я нахожу его. Свойства в ITLibMediaItem заполнены с использованием setValuesForKeysWithDictionary:

NSMutableDictionary *properties = [NSMutableDictionary dictionary]; 
[properties setObject:@"I Still Haven't Found What I'm Looking For" forKey:@"title"]; 

ITLibMediaItem *mediaItem = [[ITLibMediaItem alloc] init]; 
[mediaItem setValuesForKeysWithDictionary:properties]; 

NSMutableArray *mediaItems = [NSMutableArray new]; 
[mediaItems addObject:mediaItem];