Я читаю массив объектов ALAsset (обозначенных как NSMutableArray *assets;
в заголовочном файле). Я пытаюсь следовать этот пример, чтобы распечатать содержимое словаря ALAssets в файл, который будет извлечен позже. Обратите внимание, что я могу правильно записать ключ словаря в файл (закомментировать), но не значение.
Вот мой код, который запускается в конце метода viewDidLoad():
// Create path to Documents
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
if ([paths count] > 0) {
NSString *dictPath = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"dict.out"];
NSDictionary *aDict = [[assets objectAtIndex:0] valueForProperty:ALAssetPropertyURLs];
for (id key in aDict) {
NSLog(@"key: %@, value: %@", key, [aDict valueForKey:key]);
//[key writeToFile:dictPath atomically:YES]; <- THIS LINE WORKS
[[aDict valueForKey:key] writeToFile:dictPath atomically:YES];
}
}
else
NSLog(@"nope"); // The program doesn't get here.
Лог выглядит так:
2011-11-17 23:44:41.340 Ключ PhotoApp[542:12803]: public.jpeg, значение: assets-library://asset/asset.JPG?id=1000000001&ext=JPG
2011-11-17 23:44:41.361 PhotoApp[542:12803] -[NSURL writeToFile:atomically:]: нераспознанный селектор отправлен экземпляру 0x6455650
2011-11-17 23:44:41.370 PhotoApp[542:12803] * Завершение приложения из-за необработанного исключения «NSInvalidArgumentException», причина: «-[NSURL writeToFile:atomically:]: нераспознанный селектор отправлен в экземпляр 0x6455650'
Изменить: не уверен, имеет ли это значение, но проект предназначен для iPad и работает на симуляторе.