我有一个类,使用NSURLConnection
获取一些数据。它的方法getData
向服务器创建请求,当收到一些数据时,方法connection:didRecieveData:
更新一些属性。
- (void)getData
{
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:dataURL];
NSURLConnection *connectionWithRequest = [NSURLConnection connectionWithRequest:request delegate:self];
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
// Processing data
dataProperty = processedData;
}
问题是,当我创建此类的实例并调用方法getData
时,我无法立即获取对象的属性,因为尚未收到数据。我已经阅读了关于代理和协议的Apple参考,但我不明白如何为这个类实现委托方法,这对于connection:didRecieveData:
来说就像NSURLConnection
一样。
你能解释一下如何做到这一点吗?如果您只是发布一个示例链接,我会很高兴。谢谢。
答案 0 :(得分:0)
我不明白如何为这个类实现委托方法,就像连接一样:didRecieveData:用于NSURLConnection。
与NSURLConnection相同:
delegate
。connectionDidReceiveData:
中,向代表发送消息。答案 1 :(得分:0)
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"]);
}];