1

我很困惑并尝试了许多不同的方法来消除我面临的错误。

我有一个 NSArray 的蛋白质,在我的故事板中我有两个单独的表格视图,我希望它们都显示 protiens 数组。

我在 -(UITableViewcell *) 和 @end 有错误,其中有两个 } 错误。

如果有人可以提供帮助,请在下面找到我的 ViewController.m 代码:​​(请忽略结尾处的 segue 编码)

#import "JViewController.h"
#import "OneViewController.h"
#import "TwoViewController.h"

@interface JViewController ()

@end

@implementation JViewController
{
    NSArray *proteins;
}

@synthesize tableView1;
@synthesize tableView2;

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    proteins = [NSArray arrayWithObjects:@"Chicken", @"Turkey", @"Ham", @"Steak", @"Pork   Chop",     @"Roast Lamb", @"Salmon", @"Egg", @"Lentils", @"Kidney Beans", nil];
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    if (tableView == tableView1) {
        return [proteins count];
    {
    if (tableView == tableView2) {
        return [proteins count];
    }
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"ProteinCell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }
    if (tableView1 == tableView2)
    {
        proteins;
    }
    else
    {
        proteins;
    }

    cell.textLabel.text = [proteins objectAtIndex:indexPath.row];
    return cell;
}

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"showMealOneDetail"])
    {
    NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
    OneViewController *destViewController = segue.destinationViewController;
    destViewController.proteinName = [proteins objectAtIndex:indexPath.row];
    }
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

非常感谢您提前。

4

1 回答 1

0

你这里有两个开括号,关闭这个:

    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    if (tableView == tableView1) {
        return [proteins count];
   ->> {
    if (tableView == tableView2) {
        return [proteins count];
    }
}

你这是什么意思?

    if (tableView1 == tableView2)
{
    proteins;
}
else
{
    proteins;
}

尝试这个:

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"ProteinCell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }


    cell.textLabel.text = [proteins objectAtIndex:indexPath.row];
    return cell;
}

您是否能够在一个表格视图中显示任何内容?确保您已连接数据源和委托。

希望它有帮助=)

于 2012-11-21T10:31:09.410 回答