编译时在非结构或联合中获取成员“indexPath”的错误请求

Posted

技术标签:

【中文标题】编译时在非结构或联合中获取成员“indexPath”的错误请求【英文标题】:Getting error request for member 'indexPath' in something not a structure or union when compiling 【发布时间】:2011-02-04 20:05:31 【问题描述】:

我有一个由 tableview 示例制作的应用程序,我设法获取了 table 上列出的文档目录的文件,并且还获得了在 detailview 上查看它的内容的方法,现在当我编辑一个文件时出现问题并且我想保存它。 我收到错误:当我想访问 RootViewController 上的表视图的 indexPath.row 时,请求成员“indexPath”不是结构或联合。这是 DetailViewController 的标头:

#import <UIKit/UIKit.h>
#import "RootViewController.h"
@class RootViewController;

@interface DetailViewController : UIViewController 

    IBOutlet UITextView *labelName;
    NSString *strName;

@property (nonatomic, retain) NSString *strName;
@property (nonatomic, retain) UITextView *labelName;

- (IBAction)saveText:(id)sender;
- (IBAction)hideKeyb:(id)sender;
@end

这是我遇到问题的 IBOutlet:

- (IBAction)saveText:(id)sender 

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *data = labelName.text;
    //RootViewController *rootViewController = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle:nil];
    RootViewController *rootViewController = [RootViewController alloc]
    NSString *filename = [NSString stringWithFormat:@"%d.txt",rootViewController.indexPath.row+1];
    NSString *wheresave = [documentsDirectory stringByAppendingPathComponent:filename];
    NSData *aData = [data dataUsingEncoding:NSUTF8StringEncoding];
    [aData writeToFile:wheresave atomically:YES];

错误在NSString *filename = [NSString stringWithFormat:@"%d.txt",rootViewController.indexPath.row+1];

我认为我的所有导入都正常,但我不确定 :) 提前致谢!

【问题讨论】:

【参考方案1】:

我不确定您为什么要分配 RootViewController,因为它应该已经分配给您所说的内容。

如果您想访问 RootViewController(假设它是从 UITableViewController 扩展而来)中的一行(假设这是选定的行,您可以根据需要检索任何特定的行),它应该是这样的:

NSIndexPath *indexPath = [rootViewController.tableView indexPathForSelectedRow];

NSString *filename = [NSString stringWithFormat:@"%d.txt",indexPath.row+1];

【讨论】:

好的设法编译,但它没有保存。我放了一个 NSLog,它什么也没显示: NSLog(indexPath.row);

以上是关于编译时在非结构或联合中获取成员“indexPath”的错误请求的主要内容,如果未能解决你的问题,请参考以下文章

在非结构或联合的事物中请求成员'_file'[关闭]

目标 C:在非结构或联合的情况下请求成员 XXX。 (核心数据)

编译错误:请求非结构或联合中的成员

错误:C2016 C 要求结构或联合至少有一个成员

C++ 成员引用基类型'Vertex *const'不是结构或联合

CoreData 和访问关系的问题:请求非结构或联合中的成员