Objective c 从使用NSURLConnection的对象获取数据
我有一个类,它使用Objective c 从使用NSURLConnection的对象获取数据,objective-c,cocoa,delegates,nsurlconnection,Objective C,Cocoa,Delegates,Nsurlconnection,我有一个类,它使用NSURLConnection获取一些数据。它的方法是getData创建对服务器的请求,当收到一些数据时,方法connection:didReceiveData:更新一些属性 -(void)获取数据 { NSMutableURLRequest*请求=[NSMutableUrlRequestRequestWithURL:dataURL]; NSURLConnection*connectionWithRequest=[NSURLConnection connectionWithRe
NSURLConnection
获取一些数据。它的方法是getData
创建对服务器的请求,当收到一些数据时,方法connection:didReceiveData:
更新一些属性
-(void)获取数据
{
NSMutableURLRequest*请求=[NSMutableUrlRequestRequestWithURL:dataURL];
NSURLConnection*connectionWithRequest=[NSURLConnection connectionWithRequest:request委托:self];
}
-(void)连接:(NSURLConnection*)连接didReceiveData:(NSData*)数据
{
//处理数据
dataProperty=processedData;
}
问题是,当我创建这个类的实例并调用方法getData
时,我无法立即获取对象的属性,因为还没有收到数据。我已经阅读了有关委托和协议的苹果参考资料,但我不明白如何为这个类实现委托方法,它的工作原理类似于connection:direceivedata:
forNSURLConnection
你能告诉我怎么做吗?我很高兴,如果你只是发布一个链接到一个例子。多谢各位
我不明白如何为这个类实现委托方法,它的工作原理与NSURLConnection的connection:didReceiveData:for类似
与NSURLConnection的作用相同:
委托的属性
连接IDReceiveData:
中,向代表发送消息对不起,NSURL连接对我来说很好。我想知道如何创建我自己的委托方法,该方法的工作方式类似于连接:didReceiveData:。谢谢!它看起来很简单,我想这正是我需要的。也许一些解释会有帮助,因为OP特别要求它。顺致敬意,
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"YOUR API URL"]];
NSString *email = @"username@gmail.com";
NSString *password = @"123456";
NSString *deviceToken = @"simulator";
NSString *deviceType = @"1";
NSString *post = [NSString stringWithFormat:@"email=%@&password=%@&deviceToken=%@&deviceType=%@",email,password,deviceToken,deviceType];
NSData *requestBodyData = [post dataUsingEncoding:NSUTF8StringEncoding];
request.HTTPMethod = @"POST";
request.HTTPBody = requestBodyData;
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue]
completionHandler:^(NSURLResponse response, NSData responseData, NSError *error)
{
NSLog(@"%@",responseData);
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableContainers error:nil];
NSLog(@"%@",dic[@"data"]);
}];