2016-05-04 2 views
1

Я использую ниже код, но он не работает для меня, и всегда получаю нулевой ответ, но когда этот URL вредитель в браузер будет загружен один f.txt файл, который содержит текст нижеYoutube API автозаполнения поиск не работает

window.google.ac.h (["Y", [["young thug", 0], ["youtube", 0], ["trogo молодежи sivan", 0], ["young dolph" , 0], ["yo gotti", 0], ["yg", 0], ["yoga", 0], ["you должно быть здесь cole swindell", 0], ["yandere simulator", 0 ], [ "молодой бандит лучший друг", 0]], { "к": 1, "л": "1", "д": "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... 

    } 

}} 

ответ

1

решить эту проблему для Есть две вещи, которые нужно знать здесь:

В прошивкой 9, по умолчанию, HTTP: // не поддерживается. Вы должны безопасно общаться (с помощью https: //). Вы можете отключить эту функцию в своем Info.plist, если вам нужно. URL-адреса NSFileManager должны быть пути к файлам на диске, то есть должны быть файловыми URL-адресами. Твой нет; это URL http: //. Если ваша цель - загрузить файл, а затем скопировать его где-нибудь, используйте задачу загрузки NSURLSession.