- [NSURL _CFURLRequest]:发送到实例的无法识别的选择器

时间:2012-10-08 07:53:15

标签: ios json nsurlconnection google-places-api jsonkit

我在我的程序中使用JSONKit解析谷歌地方api但我的应用程序崩溃时出现以下错误 - [NSURL _CFURLRequest]:无法识别的选择器发送到实例

     NSString* URL = [NSString stringWithFormat:@"https://maps.googleapis.com/maps/api/place/search/json?location=28.632808,77.218276&radius=500&types=atm&sensor=false&key=AIzaSyDHft2g5IDshIpXS17uOtZzkqGGgj-p1RQ"];

NSError* error = nil;
NSURLResponse* response = nil;


NSURLRequest *URLReq = [NSURL URLWithString:URL];
//[request setURL:URL];
//[request setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData];
//[request setTimeoutInterval:30];

NSData* data = [NSURLConnection sendSynchronousRequest:URLReq returningResponse:&response error:&error];

if (error)
{
    NSLog(@"Error performing request %@", URL);
    NSLog(@"%@", [error localizedDescription]);
    return;
}

NSDictionary *json = [data objectFromJSONData];

NSArray *places = [json objectForKey:@"results"];


NSLog(@"Google Data: %@", places);

1 个答案:

答案 0 :(得分:6)

您错误地设置了“NSURLRequest”,而应使用requestWithURL:代替。

而不是

NSURLRequest *URLReq = [NSURL URLWithString:URL];

DO

NSURLRequest * urlReq = [NSURLRequest requestWithURL: [NSURL URLWithString: URL]];

另外,快速FYI:Objective C约定是对变量和ivars使用小写字母。使用大写字母表示您的班级名称。换句话说,将“URLReq”更改为“urlReq”并将“URL”更改为“url”(或甚至更好,更像“{{{{ 1}}“)。