Запуск проекта сборкой не работает в MAC OSX 10.7

-(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 code), но возникают проблемы, если я запускаю по сборке. Я импортирую песни из iTunes library.xml, после чего сохраняю в NSArrayController, Здесь, в этом методе, я пытаюсь получить изображения изображений, но если я запускаю сборку, я получаю около 250 изображений из 400.

2 ответа

Без кода alertEnd:returnCode:cInfo: трудно сказать, но обычно кажется, что в этой функции что-то убивает цикл for.

Что именно вы пытаетесь достичь с помощью:

            if (i>240 && i<250)

Можете ли вы опубликовать код для "alertEnd: returnCode: cInfo". Также было бы легче читать, если бы вы использовали __block для листов предупреждений. Если alertEnd: returnCode: cInfo не упоминается более одного раза, я бы оставил его как блок. Если вы повторно используете код в alertEnd: returnCode: cInfo, тогда продвигайте его в свою собственную void/ функцию.

Некоторые возможности:

  • Вы импортируете / читаете другой файл "iTunes library.xml", который был создан с меньшим набором файлов itunes. и, может быть, это имя файла установлено в аргументах 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++) {
  • mySongsArray скрывается за другим свойством с тем же именем. см-тень
Другие вопросы по тегам