我正在从google places API开发一个iphone应用程序。为此,我正在进行JSON解析以获取数据。
对于JSON解析,我创建了一个类,我正在编写这些方法
在JsonParse.m
文件中写入以下方法:
- (void)initWithURLString:(NSString *)aURLString parameter:(UIViewController *)viewController
{
NSURL *url = [NSURL URLWithString:aURLString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
connection=[[NSURLConnection alloc] initWithRequest:request delegate:viewController];
}
-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
[responseData setLength:0];
}
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
[responseData appendData:data];
}
-(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{
label.text=[NSString stringWithFormat:@"error in the connection %@",[error description]];
}
-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
NSString *responsestring=[[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
NSLog(@"response string is %@",responsestring);
NSError *error;
SBJSON *json=[[SBJSON new]autorelease];
NSMutableDictionary *response=[NSMutableDictionary dictionary];
response=[json objectWithString:responsestring error:&error];
NSLog(@"values in the dictionary is %@",[response valueForKey:@"results"]);
}
我正在调用viewcontroller
类中的方法,如下所示:
JsonParse *obj=[[JsonParse alloc] init];
[obj initWithURLString:urlstr parameter:self];
但是当我调试时,只调用initwithurl
方法,不调用其他连接委托方法
以前我在viewcontroller
类中编写了同一类的方法,当时每个方法都被调用,我能够删除数据。
我已经在单独的类中编写了这个方法,因为在同一个viewcontroller
类中我想要多次解析数据(使用不同的URL更多次1次)。
有谁知道为什么不调用这些方法或者如何在同一个类中解析多次?任何教程或示例代码?
答案 0 :(得分:0)
在:
// the delegate must be self
connection=[[NSURLConnection alloc] initWithRequest:request
delegate:viewController];
委托应为self
,以便调用这些方法,因为这些方法是在JsonParse
中实现的。