-1

嗨,我正在尝试在 .h 上的 uiviewcontroler 上使用 tableview,我输入了以下代码:

@interface SecondViewController : UIViewController <UITableViewDelegate, UITableViewDataSource> {
IBOutlet UITableView *myTableView;
}
@property (nonatomic, retain) IBOutlet UITableView *myTableView;

在我的 .m 上:

我修改了我的代码,但现在它说我的 Response_array 未声明,并且在对象类型 uitableviewcell 上找不到 myTablevView

@synthesize myTableView;
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [_responseArray count];
}
 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] init];
}
NSString *cellValue = [_responseArray objectAtIndex:indexPath.row];
[cell.textLabel setText:cellValue];
 return cell;
}

这是我的 Response_array

NSArray* Response_array = [json objectForKey:@"avenidas"];
4

2 回答 2

0

看起来你在那里有一个嵌套方法。

换句话说,你有一个方法,本质上是:

- (IBAction)Avenida:(id)sender {

    -(UITableViewCell *)myTableView:(UITableView *)myTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {

    }

}

难怪你的代码没有编译。

您需要从您的“”操作方法中提取您cellForRowAtIndexPath”方法。这些应该是两种不同的方法。Avenida

于 2013-05-19T18:23:04.850 回答
0

问题: Response_array 未声明

在您的@interface文件中创建一个声明您的 NSArray 的属性

@property (retain, nonatomic) NSArray * responseArray;

在您的@implementation文件@synthesize中,属性

@synthesize responseArray = _responseArray;

(选修的)

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

您可以使用 tableView 参数来访问 tableView 而不是 myTableView 属性。

例子:

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
}

问题:在对象类型 uitableviewcell 上找不到 myTablevView

cell.myTableView = cellValue;

您正在尝试访问单元格中的 tableView?UITableViewCell 有一个名为 textLabel 的默认标签。

所以应该如下(除非你有自定义标签):

[cell.textLabel setText:cellValue];
于 2013-05-19T20:01:19.643 回答