Objective c 在线教程不起作用,成员请求不在结构或联合中?
我是iOS开发新手,所以我一直在关注一系列关于如何制作深入应用程序的在线教程。我在两个版本中遇到了这个问题,我似乎无法克服它。我正在创建一个选项卡栏应用程序。在我的应用程序委托中,我为我的.plist定义了一个选项卡栏、导航控制器、视图控制器和一个NSDictionary。问题是,当我访问我的ViewController.m文件并开始告诉它使用我创建的导航控制器时,我得到一个错误“成员请求不是一个结构或联合。” 我已经试过两次了,四倍检查了代码,但还是不明白。任何帮助都将不胜感激:) 下面是我的ViewController.m文件中的tableView方法Objective c 在线教程不起作用,成员请求不在结构或联合中?,objective-c,ios,xcode,Objective C,Ios,Xcode,我是iOS开发新手,所以我一直在关注一系列关于如何制作深入应用程序的在线教程。我在两个版本中遇到了这个问题,我似乎无法克服它。我正在创建一个选项卡栏应用程序。在我的应用程序委托中,我为我的.plist定义了一个选项卡栏、导航控制器、视图控制器和一个NSDictionary。问题是,当我访问我的ViewController.m文件并开始告诉它使用我创建的导航控制器时,我得到一个错误“成员请求不是一个结构或联合。” 我已经试过两次了,四倍检查了代码,但还是不明白。任何帮助都将不胜感激:) 下面是我的
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
//Get the dictionary of the selected data source.
NSDictionary *dictionary = [self.tableDataSource objectAtIndex:indexPath.row];
//Get the children of the present item.
NSArray *Children = [dictionary objectForKey:@"Children"];
if([Children count] == 0) {
DetailViewController *dvController = [[DetailViewController alloc] initWithNibName:@"DetailView" bundle:[NSBundle mainBundle]];
[self.indNavControl pushViewController:dvController animated:YES];
[dvController release];
}
else {
//Prepare to tableview.
IndustriesViewController *indViewControl = [[IndustriesViewController alloc] initWithNibName:@"IndustryView" bundle:[NSBundle mainBundle]];
//Increment the Current View
indViewControl.CurrentLevel += 1;
//Set the title;
indViewControl.CurrentTitle = [dictionary objectForKey:@"Title"];
//Push the new table view on the stack
[self.indNavControl pushViewController:indViewControl animated:YES];
indViewControl.tableDataSource = Children;
[indViewControl release];
}
}您是否已启动导航控制?它在哪条线路上出现故障?错误消息表明您试图使用点表示法访问属性,但该属性未定义。在本例中,您似乎经常使用点表示法,因此了解它的具体故障位置会有所帮助。问题可能出在头文件中。您的一个属性上可能缺少星号或不需要星号。它在[self.indNavControl pushViewController:dvController animated:YES]和[self.indNavControl pushViewControl animated:YES]失败;不,因为我在我的应用程序委托中定义了它,但它没有在视图控制器中定义。我已将文件设置为导入。但是您正在通过self.indNavControl访问它,它是否需要是成员?不一定。我使用的教程也是这样做的,但由于一些我不理解的原因,它不起作用。你有别的建议吗?谢谢:)我很确定,如果你用self。这就是合成塞特。如果你的应用程序委托中有indNavControl,那么你必须通过[[UIApplication sharedApplication]委托]获取它并从这里访问它。我只是稍微熟悉一下如何操作。我必须为我的viewDidLoad方法这样做才能获得属性列表,但我不知道如何翻译它。下面是我的答案:A37dgAppDelegate*AppDelegate=(A37dgAppDelegate*)[[UIApplication sharedApplication]delegate];self.tableDataSource=[AppDelegate.industryData objectForKey:@“行”];所以在尝试逻辑思考时,我添加了self.indNavControl=[AppDelegate.indNavControl…],但我不知道如何处理。。。部分