我有一个功能:
+ (id) loadClass:(Class)cls
返回是cls
类型的实例,而不仅仅是任何旧的id
。有没有办法使用GCC / Clang属性来通知编译器(这样它可以执行类型检查)?
例如,我正在寻找这样的东西:
+ (instancetype(cls)) loadClass:(Class)cls
+ (id) loadClass:(Class)cls __attribute__((returntype=cls))
编辑:向用例添加一些细节
给出两个选择器:-[XYZ foo]
和-[UVW bar]
我想:
[[Loader loadClass:[XYZ class]] bar] // Warning
[[Loader loadClass:[XYZ class]] foo] // OK
[[Loader loadClass:[UVW class]] bar] // OK
[[Loader loadClass:[UVW class]] foo] // Warning