Редактировать проанализированные URL в NSArray - PullRequest
1 голос
/ 08 января 2012

Я работаю над приложением, где на одной из страниц показан блог веб-сайтов .... Я разобрал все в массивы для загрузки в UITableView. В идеале я хотел бы показывать миниатюрные изображения из видео YouTube в ячейках TableView ... однако проанализированный код содержит только код для встраивания видео ....

Су .... вопрос в том, как я могу взять что-то вроде:

http://www.youtube.com/v/videoID?version=3&feature=player_detailpage

и измените его на:

http://img.youtube.com/vi/videoID/1.jpg

Или, возможно, способ только проанализировать videoID для загрузки в строку с правильным окружающим URL? Что-то вроде:

search:@"//embed/[onlytakethevideoID]"

Заранее спасибо!

Ответы [ 3 ]

1 голос
/ 08 января 2012

Извлечение подстроки из URL - хрупкий подход, потому что Google может изменить их схему URL в любое время.

Вместо этого рассмотрим создание объекта NSURL и получение из него массива pathComponents. Путь содержит ваш идентификатор видео и может быть использован для создания нового URL:

NSURL *myURL = [NSURL URLWithString:@"http://www.youtube.com/v/videoID?version=3&feature=player_detailpage"];
NSArray *myURLPathComps = [myURL pathComponents];
NSString *myVideoID = [myURLPathComps objectAtIndex:[myURLPathComps count]-1];
NSURL *myNewURL = [NSURL URLWithString:[NSString stringWithFormat:@"http://img.youtube.com/vi/%@/1.jpg", myVideoID]];

Я думаю, вы обнаружите, что это с меньшей вероятностью сломается. Google может изменить свой URL-адрес, схему и т. Д., Но если идентификатор видео находится в той же части пути, с вами все будет в порядке.

0 голосов
/ 08 января 2012

Строка VideoID может быть получена в результате оценки g одного выражения XPath :

substring-before(substring-after($theUrl, 'http://www.youtube.com/v/'),
                 '?'
                 )

Где $theUrl следует заменить фактическим URL.

0 голосов
/ 08 января 2012

Похоже, вы спрашиваете, как извлечь videoID.Я не знаю схему URL YouTube, но если она похожа на ту, которую вы опубликовали выше, вы можете просто извлечь символы 26–26 (lengthOfVideoID) из строки и создать новую строку, например:

NSRange   videoIDRange = { 26, 26 + kVideoIDLength };
NSString* videoID = [youTubeLink substringWithRange:videoIDRange];
NSString* newURL = [NSString stringWithFormat:@"http://img.youtube.com/vi/%@/1.jpg", videoID];

Это то, что вы ищете?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...