Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.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
Ios 尝试将参数传递到空值时,由于无法识别选择器而导致的错误_Ios_Objective C_View_Selector - Fatal编程技术网

Ios 尝试将参数传递到空值时,由于无法识别选择器而导致的错误

Ios 尝试将参数传递到空值时,由于无法识别选择器而导致的错误,ios,objective-c,view,selector,Ios,Objective C,View,Selector,多亏了Stack的开发人员,我才能够找出我之前问题的根源,它发生在我应用程序的另一个文件中(因此我正在写一篇新文章) 我正试图编写一个聊天应用程序来娱乐,我编写了一个自定义视图类来显示所有发送和接收的消息。我在主视图控制器中使用以下代码行中的viewWithTag调用这个类:MessageView*MessageView=(MessageView*)[cell-viewWithTag:MESSAGE\u-view\u-TAG]。 MessageView类有一个名为transcript的属性,包含

多亏了Stack的开发人员,我才能够找出我之前问题的根源,它发生在我应用程序的另一个文件中(因此我正在写一篇新文章)

我正试图编写一个聊天应用程序来娱乐,我编写了一个自定义视图类来显示所有发送和接收的消息。我在主视图控制器中使用以下代码行中的
viewWithTag
调用这个类:
MessageView*MessageView=(MessageView*)[cell-viewWithTag:MESSAGE\u-view\u-TAG]。
MessageView类有一个名为transcript的属性,包含消息的所有信息。我还在主视图控制器中设置
MessageView
类的transcript属性。但是,在
MessageView
的实现文件中使用它时遇到问题

由于未捕获的异常“NSInvalidArgumentException”,我收到终止应用程序的错误
,原因:'-[UITableViewCell setTranscript:]:未识别的选择器发送到实例0x7fc77afe1070'
,我真的不明白。。。这是我的setTranscript方法(不要读取所有内容,我假设错误只来自第一行)

从调试器区域中得到的警报消息中,我假设在我的头中没有正确定义转录本(我在实现中小心地导入了它)。下面是我的头文件的样子:

#import <UIKit/UIKit.h>
#import "Transcript.h"
@class Transcript;
#define MESSAGE_VIEW_TAG (99)
@interface MessageView : UIView
@property (nonatomic, strong) Transcript *transcript;
@end
#导入
#导入“Transcript.h”
@班级成绩单;
#定义消息\视图\标记(99)
@接口MessageView:UIView
@属性(非原子,强)转录本*转录本;
@结束

有人知道我为什么会收到这个错误消息吗?我的论点有什么问题吗?非常感谢您提前通知

看起来您正在UITableViewCell中调用setter,但应该在MessageView中调用。
您可以显示用于调用“setTranscript”的代码吗?

您似乎有一个自定义的tableview单元格,在其中您编写了一个具有setter setTranscript的属性转录本

似乎您在CellForRowatineXpath中的dequeueReusableCellWithIdentifier方法正在返回UITableViewCell,而不是您的自定义单元格


因此,请尝试在表视图中为单元格设置标识符,并在cellForRowAtIndexPath中检索具有相同标识符的单元格。

UITableViewCell
对象中,您试图调用的
setTranscript:
代码中的某个地方可能存在重复。了解如何获取异常堆栈跟踪。没有它你是瞎的。我从不在UITableView中调用setTranscript方法。相反,我写了
MessageView*MessageView=(MessageView*)[cell-viewWithTag:MESSAGE\u-VIEW\u-TAG]。抱歉,我是说UITableViewCell。确定[cell viewWithTag:MESSAGE\u VIEW\u TAG]确实返回MessageView吗?MESSAGE\u VIEW\u TAG指向MessageView类,因此我想是的在[cell viewWithTag:MESSAGE\u VIEW\u TAG]设置断点并打印到cell的日志子视图。你在情节提要中设置了正确的标签吗?
#import <UIKit/UIKit.h>
#import "Transcript.h"
@class Transcript;
#define MESSAGE_VIEW_TAG (99)
@interface MessageView : UIView
@property (nonatomic, strong) Transcript *transcript;
@end