1

アプリでアイテムを使用し、View Controller の他の部分で使用したい部分AFJSONRequestでアイテムが返すデータを使用しました。success一生解けません。データを保持するプロパティを作成しましたが、他の方法でアクセスできません。これには何か理由がありますか?それはおそらく私が間違っていることです。他のメソッドで nameArray、emailArray、および passArray を使用するにはどうすればよいですか? それらはすでに宣言されたプロパティです。これが私のコードです:

- (void)viewDidLoad
{
[super viewDidLoad];
NSURL *url = [NSURL URLWithString:@"http://10.247.245.87/it/emailmanager.php"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[AFJSONRequestOperation addAcceptableContentTypes:[NSSet setWithObject:@"text/html"]];
AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON)
                                     {
                                         NSLog(@"email.last_name is of type: %@", [[JSON valueForKeyPath:@"email.lastname" ] class]);
                                         nameArray = [JSON valueForKeyPath:@"email.last_name"];
                                         emailArray = [JSON valueForKeyPath:@"email.email_address"];
                                         passArray = [JSON valueForKeyPath:@"email.password"];
                                         NSLog(@"%@", nameArray);
                                     }
                                                                                    failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON)
                                     {
                                         NSLog(@"error %@ %@", [error description], JSON);
                                     }];

[operation start];
}

そして、これが残りです。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
EMailCell* cell = [tableView dequeueReusableCellWithIdentifier:@"EmailCell"];
cell.nameLabel.text = @"%@", nameArray;
cell.emailLabel.text = @"%@", emailArray;
cell.passLabel.text = @"%@", passArray;
return cell;

}

JSON 結果の構造は次のとおりです。

2012-11-13 07:43:46.026 IT Tools[13987:c07] Names: (
        {
    code = 0496;
    department = Management;
    "email_address" = "????@???.com";
    "first_name" = John;
    id = 227;
    "last_name" = Doe;
    password = "T0496)$(^";
    store = Toyota;
},

そして、デバッガコンソールからの結果: 2012-11-13 09:04:37.416 IT Tools[15386:c07] email.last_name is of type: __NSArrayI

4

1 に答える 1

0

配列を文字列値に割り当てています。JSON の結果をループして、文字列の配列を作成する必要があります... JSON の結果の構造を知っておくと役立ちます。コア データを使用している場合は、JSON をコア データ オブジェクトに解析する便利な方法があります。

于 2012-11-13T13:33:16.917 に答える