您好我正在尝试在我的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"];
答案 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];