Objective c 为什么找不到我的方法?
我的Objective c 为什么找不到我的方法?,objective-c,Objective C,我的SecondViewController:UIViewController -(id) initWithFirstViewController:(FirstViewController *)theFirstViewController { self = [super init]; fvc = theFirstViewController; return self; } 所以在我的FirstViewController中,我用FirstViewCo
SecondViewController:UIViewController
-(id) initWithFirstViewController:(FirstViewController *)theFirstViewController
{
self = [super init];
fvc = theFirstViewController;
return self;
}
所以在我的FirstViewController
中,我用FirstViewController
的一个实例作为参数调用这个init方法。在SecondViewController
中的其他地方,我使用以下传递的输入:
[fvc setSomething];
已执行该方法,但我收到一条警告:
方法-未找到setSomething
(返回类型默认为id
)
如何修复此问题?在这种情况下,需要导入相应的
.h
文件,以便编译器了解此方法
此外,您应该保留FirstViewController,因为它很可能被释放,并且在完全相同的内存位置(fvc仍然指向该位置)创建了不同的对象。因此,您应该执行
fvc=[theFirstViewController retain]代码>当您“抓住”第一个视图控制器时(您希望稍后使用它)。不要忘记在您的dealoc
中释放它。在这种情况下,只需导入相应的.h
文件,编译器就可以知道该方法
此外,您应该保留FirstViewController,因为它很可能被释放,并且在完全相同的内存位置(fvc仍然指向该位置)创建了不同的对象。因此,您应该执行fvc=[theFirstViewController retain]代码>当您“抓住”第一个视图控制器时(您希望稍后使用它)。不要忘记在您的dealloc
中释放它,请引用完整的错误消息(它说明方法调用发送到了哪种类型的对象)。另外,FirstViewController是否真的有setSomething
方法?它说的是“语义问题”,并准确地显示我在问题中发布的警告,该方法存在并已执行,因此这是编译时错误,而不是运行时错误?回到我的问题,FirstViewController
是否实际实现了该方法?您是否已经导入了相应的.h
文件,其中定义了该文件?谢谢,导入帮助的最后一件事,FirstViewController没有导入,您可以将其添加到您的回答plz中吗。然而,我删除了导入前一段时间,因为我有一些麻烦与递归导入…编辑了答案。祝您有个美好的一天!请引用完整的错误消息(说明方法调用发送到的对象类型)。另外,FirstViewController是否真的有setSomething
方法?它说的是“语义问题”,并准确地显示我在问题中发布的警告,该方法存在并已执行,因此这是编译时错误,而不是运行时错误?回到我的问题,FirstViewController
是否实际实现了该方法?您是否已经导入了相应的.h
文件,其中定义了该文件?谢谢,导入帮助的最后一件事,FirstViewController没有导入,您可以将其添加到您的回答plz中吗。然而,我删除了导入前一段时间,因为我有一些麻烦与递归导入…编辑了答案。祝您有个美好的一天!