尝试设置属性值时出现语法错误

时间:2013-05-18 17:27:23

标签: objective-c uitableview

我想在点击表格单元格后,将id从表格视图(TableViewController)传递到另一个视图(ViewController)。我已为ViewController声明了一个故事板ID“ViewController”

这是TableViewController.m

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{

      UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard"   bundle: nil];
      UIViewController *viewController = [storyboard   instantiateViewControllerWithIdentifier:@"ViewController"];
      viewController.id=@"test";
      [self.navigationController pushViewController:viewController animated:YES];

}

这是ViewController.h

@property (nonatomic) NSString *id;

ViewController.m

- (void)viewDidLoad{
       id= [[NSString alloc] init];
}

但语句viewController.id=@"test";发生了语法错误。

2 个答案:

答案 0 :(得分:4)

id是Objective-C中的保留字。不要命名任何变量或属性id。将其重命名为其他内容。

此外,您的viewController变量已声明为UIViewControllerid中没有UIViewController属性。将viewController的类型更改为实际类型(ViewController?)。

ViewController *viewController = (ViewController *)[storyboard   instantiateViewControllerWithIdentifier:@"ViewController"];

答案 1 :(得分:1)

查看下面的链接,为初学者介绍如何在UITableViewController之间传递数据到另一个视图的基础知识。

Storyboards Segue Tutorial: Pass Data Between View Controllers

顺便说一下,我认为你不能用“id”作为你的财产名称。