0

私のコードは次のようになります:

NSArray *vis = [tableView1 visibleCells];
    NSLog (@"vis %@", vis);

そして私は得る:

2012-07-04 21:16:44.564 xxx[1933:12e03] vis (
    "<UITableViewCell: 0xb2dcc80; frame = (0 0; 320 80); text = 'xxx1'; autoresize = W; layer = <CALayer: 0xb2dcd60>>",
    "<UITableViewCell: 0x635ea10; frame = (0 80; 320 80); text = 'xxx2'; autoresize = W; layer = <CALayer: 0x6353620>>",
    "<UITableViewCell: 0xb2ddca0; frame = (0 160; 320 80); text = 'xxx3'; autoresize = W; layer = <CALayer: 0xb2ddc70>>",
    "<UITableViewCell: 0x635f7d0; frame = (0 240; 320 80); text = 'xxx4'; autoresize = W; layer = <CALayer: 0x635f650>>"

私が書くとき:

NSString *aText = [vis objectAtIndex:0];
NSLog (@"aText %@", aText);

私は常に警告を受け取ります:

*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[NSMutableArray objectAtIndex:]: index 0 beyond bounds for empty array'

これは一種の多次元配列ですか?はいの場合、テキストのみを抽出するにはどうすればよいですか?

4

2 に答える 2

2

むしろ使用する必要があります:

NSArray *cells = [tableView1 visibleCells];
if ([cells count] > 0) {
    UITableViewCell *cell = [cells objectAtIndex:0];
    NSString *text = cell.textLabel.text;
}
于 2012-07-04T19:30:44.700 に答える
1

によって返される配列には、オブジェクトではなくオブジェクトvisibleCellsが含まれます。あなたはあなたのの出力でそれを見ることができます。UITableViewCellNSStringNSLog(@"vis %@", vis);

文字列を取得するには、sに文字列を要求する必要がありUITableViewCellます。

言い換えると:

NSString *aText = [[[vis objectAtIndex:0] textLabel] text];
于 2012-07-04T19:30:11.953 に答える