-2

在我的应用程序中,我在 UIListView 上显示对象列表。(MasterViewController.m)

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
    ObrasData *obra = [self.arrObras objectAtIndex:indexPath.row];
    cell.textLabel.text = obra.descripcion;
    return cell;
}

我试图显示来自对象的所有数据,在这种情况下,我只加载一个字段来测试应用程序。(DetailViewController.m)

- (void)configureView
{
    // Update the user interface for the detail item.

    if (self.detailItem) {
        self.NombreObra.text = [self.detailItem description];
    }
}

当我去 DetailView 时,我在标签中得到以下文本 - >

<ObrasData: 0x892b4b0>

那么,从对象加载所有数据的最佳方式是什么?这是我加载数组的地方:

   ObrasData *obra1 = [[ObrasData alloc] initWithID:[NSNumber numberWithInt:1] presupuesto:@"100" description:@"obra de prueba" aasm_state:@"En proceso" clienteID:@"dm2"];

    NSMutableArray *arrObras = [NSMutableArray arrayWithObjects:obra1, nil];
    UINavigationController *navController = (UINavigationController *) self.window.rootViewController;
    MasterViewController *masterController = [navController.viewControllers objectAtIndex:0];
    masterController.arrObras = arrObras;

谢谢你的帮助。

4

1 回答 1

1

“description”是 NSObject 上的一种方法,它返回对象的文本描述,您看到的是默认实现(仅打印地址)。

这意味着您没有实现覆盖“描述”以返回其他内容的方法。

如果没有看到 ObrasData 的实现是什么样的,很难为您提供更多指导。

编辑,看到实现我看到你有一个名为“描述”(西班牙语)的属性,你在 init 方法中初始化。我假设您实际上想要这样做:

[self.detailItem descripcion]

另一方面,如果您确实想描述整个对象,那么您需要覆盖描述方法,例如

- (NSString *)description
{
  return [NSString <create your description yourself here>];
}
于 2013-10-18T11:33:11.367 回答