为循环检查Objective-C泛型类型(快速枚举)

为循环检查Objective-C泛型类型(快速枚举),objective-c,typechecking,fast-enumeration,Objective C,Typechecking,Fast Enumeration,是否有任何编译器选项来警告for in循环中的类型错误 NSArray*stringsArray=@[@“你好”,“世界”]; 对于(UIView*stringsArray中的错误类型){ NSLog(@“object:%@”,类型错误); } 由于NSArray可能包含多个类的对象,编译器无法在这样的for循环中检测到错误的类 来源-iOS编程:《大怪人牧场指南》不。你无能为力。哦。。。我现在明白你的意思了,我的错误。抱歉…您可以使用typeof(stringsArray.firstObjec

是否有任何编译器选项来警告for in循环中的类型错误

NSArray*stringsArray=@[@“你好”,“世界”];
对于(UIView*stringsArray中的错误类型){
NSLog(@“object:%@”,类型错误);
}

由于NSArray可能包含多个类的对象,编译器无法在这样的for循环中检测到错误的类


来源-iOS编程:《大怪人牧场指南》

不。你无能为力。哦。。。我现在明白你的意思了,我的错误。抱歉…您可以使用
typeof(stringsArray.firstObject)
而不是
中的显式类型,用于
语句您能确认吗。。。是否希望编译器检查循环中代码中指定的类型是否与数组中的类型相同?或者您正在检查数组是否不包含任何UIView(例如)?为什么编译器不能检查?我的NSArray参数化为
NSString*
。(我知道运行时无法检查,因为类型被删除了。)我想我没有足够的知识来回答为什么。在您的例子中,如果您将一些UIView对象添加到stringsArray,它将在for循环中处理。其他类型不会。