-(void)artworkImages{
NSArray *noOfSongs = [mySongsArray content];
for (int i=0; i<[noOfSongs count]; i++) {
NSDictionary *dic = [[NSDictionary alloc] init];
dic = [[mySongsArray arrangedObjects] objectAtIndex:i];
NSURL *url = [NSURL fileURLWithPath:[dic objectForKey:@"Path"]];
AVURLAsset *asset = [AVURLAsset URLAssetWithURL:url options:nil];
for (NSString *format in [asset availableMetadataFormats]) {
for (AVMetadataItem *item in [asset metadataForFormat:format]) {
if (i>240 && i<250) {
NSBeginAlertSheet(@"Check the loop", @"Delete", nil, @"Cancel", window, self, @selector(alertEnd:returnCode:cInfo:), NULL, nil, @"format===%@,%d",format);
}
}
}
}
}
如果我按代码(X代码)运行项目,上面的方法工作正常,但如果我按构建运行则会遇到问题。我正在从iTunes library.xml导入歌曲,然后我将其存储到NSArrayController
。在这个方法中,我试图获取图片图像,但如果我按照构建运行,我将获得400个图像中的250个。
答案 0 :(得分:0)
没有alertEnd的代码:returnCode:cInfo:很难说,但它通常看起来像是该函数中的东西正在杀死for循环。
您到底想要实现的目标是什么:
if (i>240 && i<250)
您可以发布'alertEnd:returnCode:cInfo'的代码。如果您使用__block作为警报表,也可能更容易阅读。如果不多次引用alertEnd:returnCode:cInfo,我会将其保留为块。如果你重复使用alertEnd:returnCode:cInfo中的代码,那么将它提升为它自己的void / function。
答案 1 :(得分:0)
一些可能性:
您正在导入/读取使用较少的一组itunes文件创建的其他“iTunes library.xml”文件。也许这个文件名是在xcode参数???
[noOfSongs count]具有不一致的值,因为对象已从noOfSongs中删除
尝试:
NSInteger *cntSongs = [[mySongsArray content] count];
for (int i=0; i< cntSongs; i++) {
而不是当前:
NSArray *noOfSongs = [mySongsArray content];
for (int i=0; i<[noOfSongs count]; i++) {