gpt4 book ai didi

ios - json 解析过程中的控制流 - Objective C

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:27:49 25 4
gpt4 key购买 nike

我正在尝试创建一个登录屏幕,其中必须输入他的用户名和密码。单击登录按钮时,我正在将详细信息解析到服务器。这是代码

    NSString *post = [NSString stringWithFormat:@"username=%@&password=%@",[_userNameText text],[_passwordText text]];
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%lu" , (unsigned long)[postData length]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:@"http://*******/*****/******/userLogin.php"]];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"sample data"];
[request setHTTPBody:postData];

NSURLSession *session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
[[session dataTaskWithRequest:request completionHandler:^(NSData *data , NSURLResponse *response , NSError *error){
_requestReply = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
NSLog(@"%@",_requestReply);
}] resume];

到目前为止,代码按预期工作。现在我想检查从服务器返回的“requestReply”是否具有值“success”,因为它是“status”键。所以我尝试使用以下代码打印它的值。

    _responseData = _requestReply;
NSLog(@"%@" , _responseData[@"status"]);

这是控制台输出

2016-10-21 06:44:03.424 QuizApp2[65724:1287972] (null)
2016-10-21 06:44:03.501 QuizApp2[65724:1288003] {"status":"success","message":"Welcome admin","code":true}

我不确定,但我觉得代码的最后一行在解析发生之前正在执行。有人可以强调控制在这里是如何流动的吗?还是我的代码有问题?

最佳答案

我没有看到任何关于解析数据的代码。你是说这条线吗

_requestReply = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];

如果 userLogin.php 返回一个 JSON 数据,就这样做:

[[session dataTaskWithRequest:request completionHandler:^(NSData *data , NSURLResponse *response , NSError *error){
NSError *err = nil;
id jsonData = [NSJSONSerialization JSONObjectWithData:data options:0 error:&err];
if (err) {
NSLog(@"%@", err);
}
else {
NSLog(@"%@", jsonData[@"status"]);
}
}] resume];

关于ios - json 解析过程中的控制流 - Objective C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40167022/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com