我想在 NSObject 实例 没有上使用一个选择器,以满足实现协议的需要。例如,如果所调用的 NSObject 实例支持类别方法,则该方法应该设置错误属性。这是代码,代码按预期运行:
if ([self respondsToSelector:@selector(setError:)])
{
[self performSelector:@selector(setError:) withObject:[NSError errorWithDomain:@"SomeDomain" code:1 userInfo:nil]];
}
但是,编译器没有看到任何带有 setError: sign 的方法,因此对于包含 @selector(setError:)
代码片段的每一行,它都会给我一个警告:
Undeclared selector 'setError:'
我不希望必须声明一个协议来消除这个警告,因为我不希望所有可能使用这个协议的类实现任何特殊的东西。按照惯例,我希望它们具有 setError:
方法或属性。
这可行吗,怎么可行?
干杯,
执行制片人