我正在尝试构建一个适用于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),但没有找到可能有帮助的初始化...
答案 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];