我正在使用下面的代码,但它不适用于我并且总是得到空响应但是当该URL有害生物进入浏览器时它会下载一个包含下面文本的f.txt文件
window.google.ac.h([" Y",[["年轻暴徒" 0],[" youtube",0],[ "青年特洛伊 sivan",0],["年轻的海豚",0],[" yo gotti",0],[" yg",0],[ "瑜伽",0],["你 应该在这里cole swindell",0],[" yandere模拟器",0],["年轻的暴徒 最好的朋友",0]],{" k":1," l":" 1"," q":& #34; Fu65vJmwPDpRvrCvJ_hO3MqI15U"}])
@property(strong, nonatomic) NSMutableArray *ParsingArray // Put that in .h file or after @interface in your .m file
-(void)autocompleteSegesstions : (NSString *)searchWish{
//searchWish is the text from your search bar (self.searchBar.text)
NSString *jsonString = [NSString stringWithFormat:@"http://suggestqueries.google.com/complete/search?client=youtube&ds=yt&alt=json&q=%@", searchWish];
NSString *URLString = [jsonString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; // Encoding to identify where, for example, there are spaces in your query.
NSLog(@"%@", URLString);
NSData *allVideosData = [[NSData alloc]initWithContentsOfURL:[[NSURL alloc]initWithString:URLString]];
NSString *str = [[NSString alloc]initWithData:allVideosData encoding:NSUTF8StringEncoding];
NSLog(@"%@", str); //Now you have NSString contain JSON.
NSString *json = nil;
NSScanner *scanner = [NSScanner scannerWithString:str];
[scanner scanUpToString:@"[[" intoString:NULL]; // Scan to where the JSON begins
[scanner scanUpToString:@"]]" intoString:&json];
//The idea is to identify where the "real" JSON begins and ends.
json = [NSString stringWithFormat:@"%@%@", json, @"]]"];
NSLog(@"json = %@", json);
NSArray *jsonObject = [NSJSONSerialization JSONObjectWithData:[json dataUsingEncoding:NSUTF8StringEncoding] //Push all the JSON autocomplete detail in to jsonObject array.
options:0 error:NULL];
self.ParsingArray = [[NSMutableArray alloc]init]; //array that contains the objects.
for (int i=0; i != [jsonObject count]; i++) {
for (int j=0; j != 1; j++) {
NSLog(@"%@", [[jsonObject objectAtIndex:i] objectAtIndex:j]);
[self.ParsingArray addObject:[[jsonObject objectAtIndex:i] objectAtIndex:j]];
//Parse the JSON here...
}
}}
答案 0 :(得分:1)
解决这个问题这里有两件事要知道:
在iOS 9中,默认情况下不支持http://。您必须安全地进行通信(使用https://)。如果必须,您可以在Info.plist中关闭此功能。 NSFileManager URL必须是磁盘上文件的路径 - 也就是说,它们必须是文件URL。你的不是;它是一个http:// URL。如果您的目标是下载文件然后将其复制到某处,请使用NSURLSession的下载任务。