UIViewController上的TableView包含数组信息

时间:2013-05-19 18:15:03

标签: objective-c uitableview uiviewcontroller tableview

您好我正在尝试在我的uiviewcontroler上使用tableview 在我的.h上我把这段代码:

@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"];

2 个答案:

答案 0 :(得分:0)

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

换句话说,你有一个基本上是:

的方法
- (IBAction)Avenida:(id)sender {

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

    }

}

难怪你的代码没有编译。

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

答案 1 :(得分: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];