在下面的代码中,我使用NSClassFromString将NSString“ ColorFilter”转换为类名称ColorFilter。结果ColorFilter类似乎与导入语句中具有相同名称的我的头文件中定义的类没有关联。

在我的.h文件中:

#import "ColorFilter.h"   //ColorFilter is a subclass of UIViewController which also has an iVars name imageView of UIImageView class


在我的.m文件中:

NSString *filter = @"ColorFilter";
UIViewController *myFilterClass = [[NSClassFromString(filter) alloc] initWithNibName:filter bundle:nil];


我从上一行得到的错误是[ColorFilter initWithNibName:bundle:]:无法识别的选择器已发送到实例...

为了进行测试,我将最后一行修改为:

UIViewController *myFilterClass = [[NSClassFromString(filter) alloc] init];
myFilterClass.imageView = .....;


现在我得到的错误是-[ColorFilter setImageView:]:无法识别的选择器已发送到实例...

我的结论是,由NSClassFromString生成的ColorFilter类对此#import“ ColorFilter.h”一无所知。

知道我的错误是什么吗?

最佳答案

ColorFilter.m可能无法与您的应用程序一起编译。在项目的“构建源”选项卡中的“编译源”下,您是否看到“ ColorFilter.m”?如果没有,请将其拖到该列表中。

08-16 04:43