2013-10-04 3 views
0

я получить URL в качестве AVURLAsset так:Как получить имя файла AVURLAsset?

NSURL *url = [[asset defaultRepresentation] url]; 

В консоли, URL-AVURLAsset выглядит следующим образом:

активы библиотека: //asset/asset.mov ID = A3210417 -4BAC-1C78-BD93-4BDD286247D9 & доба = мы

Я пытался получать имя файла с расширением из URL, как это:

NSString *last = [[url URLByDeletingPathExtension] lastPathComponent]; 
NSString *tnFileName = [NSString stringWithFormat:@"%@_tn.%@", last, url.pathExtension]; 

Вот консольный лог tnFileName:

tnFileName = asset_tn.mov

Как я могу получить строку в части A3210417-4BAC-1C78-BD93-4BDD286247D9? Или существует другой уникальный идентификатор для актива, который будет использоваться для кэширования неподвижных изображений актива?

Чтобы уточнить, мне нужно это, чтобы сохранить миниатюры на диск, и я хочу использовать имя, соответствующее активу.

+0

Я не думаю, что вы имеете в виду 'AVURLAsset' здесь. Я думаю, вы имеете в виду «ALAsset», да? –

ответ

3

игра со строкой, как это:

NSString * urlName = @"assets-library://asset/asset.mov?id=A3210417-4BAC-1C78-BD93- 

4BDD286247D9&ext=mov"; 

    NSArray *arr = [urlName componentsSeparatedByString:@"id"]; 

    NSString *str = [arr lastObject]; 

    NSArray *arr1 = [str componentsSeparatedByString:@"&"]; 

    NSLog(@"array is %@",arr1); 

    NSString *str2 = [[arr1 objectAtIndex:0] substringFromIndex:1]; 

    NSLog(@"str2 is %@",str2); 

выход будет A3210417-4BAC-1C78-BD93-4BDD286247D9 :)

+0

downvoter, пожалуйста, дайте мне знать, что с этим связано, поэтому я буду исправлять соответственно, –

0

Попробуйте так:

NSString * URLNAME = @ "активы-библиотека: //asset/asset.mov ID = A3210417-4BAC-1C78-BD93-

4BDD286247D9 & внутр = мов" ;

NSArray *arr = [urlName componentsSeparatedByString:@"id"]; 

NSString *str = [arr lastObject]; 

NSArray *arr1 = [str componentsSeparatedByString:@"&"]; 

NSLog(@"array is %@",arr1); 

NSString *str2 = [[arr1 objectAtIndex:0] substringFromIndex:1]; 

NSLog(@"str2 is %@",str2); 
+0

Чтобы быть абсолютно честным, обстрел с NSTask для выполнения некоторых манипуляций с строками кажется довольно сумасшедшей задачей. –

+0

Да Правильно, но выполнение результата будет очень быстрым, используя сценарий оболочки. –

+0

Нет, он будет медленным по сравнению с выполнением этого процесса, если вы не напишете какой-нибудь ужасный код. –

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