AFNetworking 及其响应 (JSON)。简单的查一个值行不通?

AFNetworking and its Repsonse (JSON). Simple check a value does not work?

我对 AFNetworking 及其响应有疑问。 对你来说,这会很容易解决?! :-D

我收到一个 json 的响应,然后我使用响应的值。 日志中的响应如下所示:

{
    data = {
        name = john;
        newsletter = 1;
    };
    message = "Registered successfully";
    status = 200;
}

我使用名称值的代码如下所示:

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
NSDictionary *parameters = @{@"username": mailTextField.text, @"password": passwordTextField.text, @"token": appToken, @"type": @"ios", @"action": @"register"};
[manager POST:appURLPUSH parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {

        self.posts = (NSDictionary *)responseObject;
        self.post = self.posts[@"data"][@"name"];
        signNameLabel.text = (NSString *)self.post;
        signMailLabel.text = mailTextField.text;

        NSArray *menu = nil;

        if ((NSInteger)self.posts[@"data"][@"newsletter"] == 1) {
            NSLog(@"ITS ONE!");
            menu = @[@"newsletterunregister", @"signout"];
        } else {
            NSLog(@"MUST BE ZERO!");
            menu = @[@"newsletterregister", @"signout"];
        }

    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        // Error handling
    }];

signNameLabel.text = (NSString *)self.post;作品。 我的问题是 if ((NSInteger)self.posts[@"data"][@"newsletter"] == 1) { 行。它永远不会成真。为什么?我尝试了一些方法,比如将它转换为 NSString,但它也没有用。 那么我如何检查项目 "newsletter" 是否为 1?

非常感谢。 泰坦

试试这个代码

NSInteger newsletter = [self.posts[@"data"][@"newsletter"] IntegerValue];

            if (newsletter == 1) {
                NSLog(@"ITS ONE!");
                menu = @[@"newsletterunregister", @"signout"];
            } else {
                NSLog(@"MUST BE ZERO!");
                menu = @[@"newsletterregister", @"signout"];
            }