我开发了一个应用程序,加载用户的视频,当他们点击tableview中的单元格时,它会转到另一个视图控制器,它持有一堆不同的信息。
我试图从一个特定的视频提取实际的YouTube链接。我打印出我得到的链接,它们以这种形式出现。
https://www.youtube.com/v/Xf5pXlZJr1U?version=3& f = user_uploads&应用= youtube_gdata
但是我希望它是这种形式
http://www.youtube.com/watch?v=Xf5pXlZJr1U
原因是我想让人们通过社交媒体分享这个链接,但当它以第一种格式出现时,感觉很奇怪。
是否有任何方法可以轻松转换链接?
示例代码和答案编辑
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]];
如果你看一下NSString文档,你会发现很多有用的方法供你使用,例如 componentsSeparatedByString
根据一些特定的字符将字符串分成两个不同的块; stringByAppendingString
用于将字符串附加到现有字符串上。使用这些方法并不难,只要根据自己的需要使用就可以了。