我正在使用 NSURLConnection 和 NSURLConnectionDelegate 协议将带有从 iPhone 客户端输入的用户名和密码的 URL 发布到服务器。服务器收到 URL 后,服务器上提供的 Web 服务将填充一些 JSON 格式的数据并将其发送回 iPhone 客户端。
我的 WebserviceDelegate 类使用 NSURLConnectionDelegate 协议。
@implementation WebserviceDelegate
- (id)initWithURL:(NSURL *)url
{
if (self = [super init])
{
responseData = [NSMutableData data];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
connection = [NSURLConnection connectionWithRequest:request delegate:self];
[connection start];
}
return self;
}
...
@end
现在我想验证我从服务器获得的响应是否告诉我我是否已登录。为此,Web 服务发送的数据将具有一个名为“status”的字典键。如果“status”为“true”,则表示登录成功。如果看到“false”,则表示登录失败。
但在 iPhone 端,我不知道如何实现上述逻辑,因为:
该请求是异步的,因此当我尝试在自定义方法中验证状态键时,我得到空值。(responseDict 是在 .h 文件中定义的变量,它的值是从
(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
在我的 WebserviceDelegate 类中)
NSString *status = [responseDict objectForKey:@"status"];
NSLog(@"status = %@", status);
if ([@"true" isEqualToString:status]) {
return YES;
}
else {
return NO;
}