アプリでアイテムを使用し、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