0

ユーザーのビデオをロードするアプリを開発しました。テーブルビューのセルをクリックすると、さまざまな情報を保持する別のビューコントローラーに移動します。

特定のビデオから実際の YouTube リンクを抽出しようとしています。取得したリンクを印刷すると、この形式で届きます。

https://www.youtube.com/v/Xf5pXlZJr1U?version=3&f=user_uploads&app=youtube_gdata

でも、こういう形でお願いしたいです。

http://www.youtube.com/watch?v=Xf5pXlZJr1U

理由は、SNSでリンクを共有してもらいたいからなのですが、最初のフォーマットだとおかしくなりました。

リンクを簡単に変換する方法はありますか?


サンプルコードと回答の編集

GDataEntryBase *entry2 = [[feed entries] objectAtIndex:indexPath.row];
NSString *title = [[entry2 title] stringValue];
NSArray *contents = [[(GDataEntryYouTubeVideo *)entry2 mediaGroup] mediaContents];
GDataMediaContent *flashContent = [GDataUtilities firstObjectFromArray:contents withValue:@"application/x-shockwave-flash" forKeyPath:@"type"];
NSString *tempURL = [flashContent URLString];

NSArray *thumbnails = [[(GDataEntryYouTubeVideo *)entry2 mediaGroup] mediaThumbnails];
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:[[thumbnails objectAtIndex:0] URLString]]];
UIImage *image = [UIImage imageWithData:data];

GDataYouTubeMediaGroup *mediaGroup = [(GDataEntryYouTubeVideo *)entry2 mediaGroup];
GDataMediaDescription *desc2 = [mediaGroup mediaDescription];
NSString *mystring = [desc2 stringValue];

NSArray *listItems = [tempURL componentsSeparatedByString:@"/"];
NSString *NewURL = @"";

NewURL = [NewURL stringByAppendingString:[listItems objectAtIndex:0]];
NewURL = [NewURL stringByAppendingString:@"//"];
NewURL = [NewURL stringByAppendingString:[listItems objectAtIndex:2]];
NewURL = [NewURL stringByAppendingString:@"/"];
NewURL = [NewURL stringByAppendingString:@"watch"];
NewURL = [NewURL stringByAppendingString:@"?v="];

NSArray *listItems2 = [[listItems objectAtIndex:4] componentsSeparatedByString:@"?"];    
NewURL = [NewURL stringByAppendingString:[listItems2 objectAtIndex:0]];
4

1 に答える 1

1

NSString docsを見るとcomponentsSeparatedByString 、特定の文字に応じて文字列を 2 つの異なるチャンクに分割し stringByAppendingStringたり、既存の文字列に文字列を追加したりするなど、自分で使用できる便利な方法がいくつか見つかります。これらの方法を使用するのは難しくありません。必要に応じて使用してください。

于 2013-03-06T20:12:14.620 に答える