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