我有很多看起来像这样的代码:
id myObjectRaw = getObject();
if(![myObjectRaw isKindOfClass:[MyClass class]]) return nil;
MyClass * myObject = myObjectRaw;
...
这里id getObject()
可以返回几种对象。然而,上面的代码对我来说感觉很笨拙。写这个安全吗?
MyClass * myObject = getObject();
if(![myObject isKindOfClass:[MyClass class]]) return nil;
...
编译器没有抱怨,但我不确定如果getObject
返回一个与MyClass
.
(不,我不能使用超类或接口,因为我实际上无法控制所有返回的类。)