为啥我会收到错误消息?
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 及更高版本