Ios AFNetworking和id ResponseObject不工作,无法恢复内容
经过几天的工作,我无法解决这个问题,我真的需要你的帮助,因为我完全被锁住了,我开始发疯了!!!!!!。我在Objective c for iOS中有一个项目,我从服务器获取数据,并将其放入我的应用程序中。我在从JSON恢复和保存数据时遇到了一些麻烦 我想使用“id responseObject”,并在项目的另一个区域保存和使用内容。每次尝试使用以下方法并在“setCompletionBlockWithSucess”之外使用“id responseObject”时,“id responseObject”为(null),我该怎么办Ios AFNetworking和id ResponseObject不工作,无法恢复内容,ios,objective-c,json,afnetworking,Ios,Objective C,Json,Afnetworking,经过几天的工作,我无法解决这个问题,我真的需要你的帮助,因为我完全被锁住了,我开始发疯了!!!!!!。我在Objective c for iOS中有一个项目,我从服务器获取数据,并将其放入我的应用程序中。我在从JSON恢复和保存数据时遇到了一些麻烦 我想使用“id responseObject”,并在项目的另一个区域保存和使用内容。每次尝试使用以下方法并在“setCompletionBlockWithSucess”之外使用“id responseObject”时,“id responseObje
NSURL *URL = [NSURL URLWithString:@"…."];
NSURLRequest *request = [NSURLRequest requestWithURL:URL];
AFHTTPRequestOperation *op = [[AFHTTPRequestOperation alloc] initWithRequest:request];
op.responseSerializer = [AFJSONResponseSerializer serializer];
[op setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"JSON: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
[[NSOperationQueue mainQueue] addOperation:op]
听起来你好像不太明白变量的作用域是什么。如果是这样的话,这个项目对你来说可能太先进了。我敦促您阅读scope+块,以便更好地了解正在发生的事情 现在发生的是
setCompletionBlockWithSuccess
实际上是一个代码块,如果URL请求成功,就会执行该代码块。这意味着responseObject
不会立即执行!它在一段时间后被传回,您可以在setCompletionBlockWithSuccess
中访问它。这就是为什么在街区外是零
做你想做的事很简单。您需要读取setCompletionBlockWithSuccess
中的responseObject
,并将其设置为您可以访问的另一个变量。或者,您可以立即将其发送到另一个类进行解析/保存
我还没有测试过它,但我相信这应该可以通过一个简单的JSON响应来实现。如果没有,请使用操作.响应字符串
NSString *jsonResponse;
NSURL *URL = [NSURL URLWithString:@"…."];
NSURLRequest *request = [NSURLRequest requestWithURL:URL];
AFHTTPRequestOperation *op = [[AFHTTPRequestOperation alloc] initWithRequest:request];
op.responseSerializer = [AFJSONResponseSerializer serializer];
[op setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"JSON: %@", responseObject);
jsonResponse = responseObject;
}
…非常感谢你的回答我感谢你的及时回答。这对我来说更清楚了,我发送了变量并在另一个类中解析它,它就像一个符咒!。正如你建议我的,我将深入研究目标C编程的这一部分,即sope+块。这个问题在语法上是错误的