为啥我会收到错误消息?

Posted

技术标签:

【中文标题】为啥我会收到错误消息?【英文标题】:Why am I getting an error for this?为什么我会收到错误消息? 【发布时间】:2009-05-15 02:06:32 【问题描述】:

为什么会出现这些错误? alt text http://img39.imageshack.us/img39/2203/help.tif

上面写着:

错误:对成员“jokeTableView”的请求不是结构或联合

这是什么意思?以及为什么会破裂。我尝试阅读有关initWithStyle 的信息,但我只能赶上它

这是我的 .h 文件:

#import <UIKit/UIKit.h>


 @interface TableViewController : UITableViewController 

NSMutableArray *jokes;
IBOutlet UITableView *jokeTableView; 


  

 @property (nonatomic, retain) NSMutableArray *jokes;

 @end

谢谢!

【问题讨论】:

您访问它的方式假定jokeTableView 是TableViewController 的一个属性。 也许您可以尝试仅复制/粘贴实际代码,小图没有多大用处:) 只是有问题的行的剪切,可能是头文件中的相关行。 也许它不喜欢你的笑话? (抱歉无法抗拒):-) @lothar 哈哈,没关系。如果我是你,我也无法抗拒:p 【参考方案1】:

您的对象 (TableViewController) 没有名为 jokeTableView 的属性。

为了使用特殊的点运算符访问jokeTableView,它需要是一个属性。否则,您必须使用符合 Key-Value-Coding 的方法或直接使用 -> 运算符来访问它(或者仅将其用作 ivar 并且不引用 self):

jokeTableView.delegate = self;

self->jokeTableView.delegate = self;

[self jokeTableView].delegate = self;

@property (retain) UITableView *jokeTableView;
// later...
self.jokeTableView.delegate = self;

另外请注意,您在初始化程序中设置了一个插座,这将不起作用。您必须在 -[TableViewController awakeFromNib] 方法中设置它,因为当实际调用初始化程序时 self->jokeTableView 将为 nil(在将对象序列化到 nib 文件之前发生在 IB 中)。

【讨论】:

嘿,杰森。哈哈,这应该是你这周第三次帮助我了!谢啦!好的,我添加了我的头文件...问题是,我确实说明了 jackTableView 是什么... 为什么要我改成“self.jokeTableView.delegate = self;”如果已经是那个了? 我在 awakeFromNib 中初始化了 jokeTableView,但现在拍摄视图只是空白......它甚至不显示行...... 他的第四个选项的要点是,如果您希望当前(属性)语法正常工作,您实际上可以将其声明为属性——正如它上面的行所示。 哦,好的,我明白了。但是为什么在我这样做之后,我用 AwakeFromNib 进行了初始化,我的 tableView 没有出现?【参考方案2】:

由于您在初始化时执行此操作,因此出口应该为 NULL,因此此初始化不应该做任何事情。这应该最早在 awakeFromNib 时间完成。

【讨论】:

以上是关于为啥我会收到错误消息?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我会收到错误消息:“FileExistsError: [WinError 183] 当文件已存在时无法创建文件”?

如何在 IIS 中正确托管连接到 SQLServer 的 WCF 数据服务?为啥我会收到错误消息?

为啥我会收到错误消息:Android Gradle 插件仅支持 Kotlin Gradle 插件版本 1.3.10 及更高版本

不支持请求方法“GET”。为啥我会收到此错误?

为啥我会收到“'If' is a reserved keyword”错误?

为啥我会收到“无效的列名”?消息 207 级别 16 状态 1 第 14 行