2013-03-01 2 views
0

Я пытаюсь получить .caf-файлы из каталога, а затем помещать их в UIPickerView, чтобы я мог воспроизводить их, когда каждая строка была нажата.Наполнение UIPickerView аудиофайлами из документов Каталог

До сих пор у меня этот код, но я не могу понять, как помещать файлы в массив.

NSString *extension = @"caf"; 
NSFileManager *fileManager = [NSFileManager defaultManager]; 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *documentsDirectory14 = [documentsDirectory stringByAppendingPathComponent:@"/Family"]; 
NSArray *contents = [fileManager contentsOfDirectoryAtPath:documentsDirectory14 error:&error]; 
NSMutableArray *cafFiles = [NSMutableArray arrayWithCapacity: [contents count]]; 

NSString *filename; 
for (filename in contents) 

    NSLog(@"filename;%@",filename); 

{ 
    if ([[filename pathExtension] isEqualToString:extension]) 
    { 

     [cafFiles addObject: [NSMutableArray arrayWithContentsOfFile:[documentsDirectory14 stringByAppendingPathComponent:filename]]]; 
    } 
}  

NSLog(@"jpegFiles;%@",cafFiles); 

covers= [NSMutableArray arrayWithArray:cafFiles];{ 
    for (filename in cafFiles); 
} 
NSLog(@"%@", covers); 

Может кто-нибудь помочь мне в этом?

Будет ли это указывать имена файлов в представлении выбора, если я использую обложки в качестве массива для этого?

ответ

0

Похоже, вы пытались загрузить фактические аудиоданные, которые вы не хотите для представления выбора, - вы хотите имена файлов. Попробуйте этот код вместо, который основан на вашем:

NSString *extension = @"caf"; 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *familyDirectory = [paths[0] stringByAppendingPathComponent:@"Family"]; 
NSArray *directoryContents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:familyDirectory 
                     error:NULL]; 
NSIndexSet *cafFileNameIndexes = [directoryContents indexesOfObjectsPassingTest:^BOOL(NSString *fileName, NSUInteger idx, BOOL *stop) { 
    return [[fileName pathExtension] isEqualToString:extension]; 
}]; 
NSArray *cafFileNames = [directoryContents objectsAtIndexes:cafFileNameIndexes]; 

Затем используйте cafFileNames в качестве исходных данных для реализации ваших UIPickerViewDelegate/UIPickerViewDataSource методы.

Смежные вопросы