Iphone Xcode上的奇怪编译错误
简单的问题。。。我对我的代码有一些评论,并删除了它们,但出现了一个错误。几个小时后,我到达了源头 此代码适用于:Iphone Xcode上的奇怪编译错误,iphone,xcode,compiler-errors,nslog,Iphone,Xcode,Compiler Errors,Nslog,简单的问题。。。我对我的代码有一些评论,并删除了它们,但出现了一个错误。几个小时后,我到达了源头 此代码适用于: switch (indexPath.row) { case 0: NSLog(@"case 0"); break; case 1: // Clients NSLog(@"case 1"); ViewClientListTableController *viewListTableController =
switch (indexPath.row) {
case 0:
NSLog(@"case 0");
break;
case 1: // Clients
NSLog(@"case 1");
ViewClientListTableController *viewListTableController = [[ViewClientListTableController alloc] init];//]WithNibName:@"BrowseViewController" bundle:nil];
viewListTableController.managedObjectContext = self.managedObjectContext;
[self.navigationController pushViewController:viewListTableController animated:YES];
//[self.navigationController setNavigationBarHidden:NO];
[viewListTableController release];
break;
}
下一个(仅删除NSLog(@“案例1”);)不起作用:
switch (indexPath.row) {
case 0:
NSLog(@"case 0");
break;
case 1: // Clients
ViewClientListTableController *viewListTableController = [[ViewClientListTableController alloc] init];//]WithNibName:@"BrowseViewController" bundle:nil];
viewListTableController.managedObjectContext = self.managedObjectContext;
[self.navigationController pushViewController:viewListTableController animated:YES];
//[self.navigationController setNavigationBarHidden:NO];
[viewListTableController release];
break;
}
如您所见,只有NSLog行消失了。编译器给了我两个错误:
RootViewController.m:212:错误:“ViewClientListTableController”之前应为表达式
RootViewController.m:213:错误:“viewListTableController”未声明(此函数首次使用)
当然,一个答案是离开NSLog行,但实际上。。。为什么会发生此错误?switch语句在其大小写标签中声明变量时经常遇到问题。我敢打赌
{
ViewClientListTableController *viewListTableController = [[ViewClientListTableController alloc] init];//]WithNibName:@"BrowseViewController" bundle:nil];
viewListTableController.managedObjectContext = self.managedObjectContext;
[self.navigationController pushViewController:viewListTableController animated:YES];
//[self.navigationController setNavigationBarHidden:NO];
[viewListTableController release];
}
适用于案例1:-NSLog宏可能具有类似效果的扩展。switch语句在案例标签中声明变量时经常遇到问题。我敢打赌
{
ViewClientListTableController *viewListTableController = [[ViewClientListTableController alloc] init];//]WithNibName:@"BrowseViewController" bundle:nil];
viewListTableController.managedObjectContext = self.managedObjectContext;
[self.navigationController pushViewController:viewListTableController animated:YES];
//[self.navigationController setNavigationBarHidden:NO];
[viewListTableController release];
}
适用于案例1:-NSLog宏可能有一个具有类似效果的扩展。在使用switch case语句时,我也遇到了这个问题。如果您在“ViewClientListTableController*viewListTableController=[[ViewClientListTableController alloc]init];“类似于”ViewClientListTableController*viewListTableController=[[ViewClientListTableController alloc]init];”这样的句子之前写一个分号,您可能会看到不再有错误。我不知道确切的原因,但它解决了问题 在使用switch-case语句时,我也遇到了这个问题。如果您在“ViewClientListTableController*viewListTableController=[[ViewClientListTableController alloc]init];“类似于”ViewClientListTableController*viewListTableController=[[ViewClientListTableController alloc]init];”这样的句子之前写一个分号,您可能会看到不再有错误。我不知道确切的原因,但它解决了问题 我一直有这个麻烦。我想我们不能在case标签的第一行声明一个新变量,除非我们有一个括号
{}
case 1: // Clients
{
ViewClientListTableController *viewListTableController = [[ViewClientListTableController alloc] init];//]WithNibName:@"BrowseViewController" bundle:nil];
viewListTableController.managedObjectContext = self.managedObjectContext;
[self.navigationController pushViewController:viewListTableController animated:YES];
//[self.navigationController setNavigationBarHidden:NO];
[viewListTableController release];
break;
}
我一直有这个麻烦。我想我们不能在case标签的第一行声明一个新变量,除非我们有一个括号
{}
case 1: // Clients
{
ViewClientListTableController *viewListTableController = [[ViewClientListTableController alloc] init];//]WithNibName:@"BrowseViewController" bundle:nil];
viewListTableController.managedObjectContext = self.managedObjectContext;
[self.navigationController pushViewController:viewListTableController animated:YES];
//[self.navigationController setNavigationBarHidden:NO];
[viewListTableController release];
break;
}