Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 在线教程不起作用,成员请求不在结构或联合中?_Objective C_Ios_Xcode - Fatal编程技术网

Objective c 在线教程不起作用,成员请求不在结构或联合中?

Objective c 在线教程不起作用,成员请求不在结构或联合中?,objective-c,ios,xcode,Objective C,Ios,Xcode,我是iOS开发新手,所以我一直在关注一系列关于如何制作深入应用程序的在线教程。我在两个版本中遇到了这个问题,我似乎无法克服它。我正在创建一个选项卡栏应用程序。在我的应用程序委托中,我为我的.plist定义了一个选项卡栏、导航控制器、视图控制器和一个NSDictionary。问题是,当我访问我的ViewController.m文件并开始告诉它使用我创建的导航控制器时,我得到一个错误“成员请求不是一个结构或联合。” 我已经试过两次了,四倍检查了代码,但还是不明白。任何帮助都将不胜感激:) 下面是我的

我是iOS开发新手,所以我一直在关注一系列关于如何制作深入应用程序的在线教程。我在两个版本中遇到了这个问题,我似乎无法克服它。我正在创建一个选项卡栏应用程序。在我的应用程序委托中,我为我的.plist定义了一个选项卡栏、导航控制器、视图控制器和一个NSDictionary。问题是,当我访问我的ViewController.m文件并开始告诉它使用我创建的导航控制器时,我得到一个错误“成员请求不是一个结构或联合。”

我已经试过两次了,四倍检查了代码,但还是不明白。任何帮助都将不胜感激:)

下面是我的ViewController.m文件中的tableView方法

- (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…],但我不知道如何处理。。。部分