如何创建新的ITLibMediaItem对象?

时间:2017-02-16 02:54:53

标签: objective-c ituneslibrary

我正在尝试构建一个适用于iTunes的应用。所以,我将框架导入到我的项目中并创建了一个小类,仅用于学习目的,如下所示:

-(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),但没有找到可能有帮助的初始化...

1 个答案:

答案 0 :(得分: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];