我试图从JSON查询中提取结果并将这些结果放入NSArray中,以便我可以在TableView中列出结果。
这是我在PHP中的switch语句:
switch ($_POST['command']) {
case "account":
account($_SESSION['IdUser']);break;
}
然后,在我的api.php文件中,我有以下功能,允许我查询该数据库以提取帐户所有者为“登录/会话”用户的所有帐户。
function account($IdUser) {
$login = query("SELECT IdUser, name FROM account WHERE IdUser='%d'", $IdUser);
}
以下是我从查询中获取这些值的代码。
NSMutableDictionary* params =[NSMutableDictionary dictionaryWithObjectsAndKeys:
@"account", @"command", nil];
[[API sharedInstance] commandWithParams:params onCompletion:^(NSDictionary *json) {
NSArray* res = [json objectForKey:@"result"];
}];
然后我创建了Tableview方法......
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [res count];
}
然后......
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *simpleTableIdentifier = @"SimpleTableCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
}
cell.textLabel.text = [res objectAtIndex:indexPath.row];
return cell;
}
当我运行iOS模拟器时,我的表格中没有任何值。
答案 0 :(得分:0)
首先添加一个属性:
@property (nonatomic, strong) NSArray *res;
然后你可以
NSMutableDictionary* params =[NSMutableDictionary dictionaryWithObjectsAndKeys:
@"account", @"command", nil];
[[API sharedInstance] commandWithParams:params onCompletion:^(NSDictionary *json) {
self.res = [json objectForKey:@"result"];
[self.tableView reloadData];
}];
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [self.res count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *simpleTableIdentifier = @"SimpleTableCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
}
NSDictionary *user = [self.res objectAtIndex:indexPath.row];
cell.textLabel.text = [user objectForKey:@"name"];
return cell;
}