-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;
}

オブジェクトからすべてのデータを表示しようとしています。この場合、アプリをテストするために 1 つのフィールドのみをロードします。(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

「説明」は、オブジェクトのテキスト説明を返す NSObject のメソッドであり、表示されているのはデフォルトの実装です (アドレスを出力するだけです)。

これは、「説明」をオーバーライドして別のものを返すメソッドが実装されていないことを意味します。

ObrasData の実装がどのように見えるかを確認しないと、これ以上説明するのは困難です。

編集、実装を見て、init メソッドで初期化する "descripcion" (スペイン語) というプロパティがあることがわかりました。私はあなたが実際にこれをしたいと思います:

[self.detailItem descripcion]

一方、本当にオブジェクト全体を記述したい場合は、記述メソッドをオーバーライドする必要があります。

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