【发布时间】:2011-09-26 01:07:32
【问题描述】:
我有一个接收 Class 对象的 NSArray 的方法,我需要检查它们是否都是使用下面的代码生成的 Class 类型:
NSMutableArray *arr = [[NSMutableArray alloc] init];
[arr addObject:[NSObject class]];
[arr addObject:[NSValue class]];
[arr addObject:[NSNumber class]];
[arr addObject:[NSPredicate class]];
[arr addObject:@"not a class object"];
问题是Class不是objective-c类,是struc,所以不能随便用
for (int i; i<[arr count]; i++) {
Class obj = [arr objectAtIndex:i];
if([obj isKindOfClass: [Class class]]) {
//do sth
}
}
所以,我需要检查obj 变量是否是Class 类型,我想它会直接在C 中,但我该怎么做呢?
如果答案还提供了一种方法来检查数组中的项目是否为NSObject,那将是一个加分项,就像示例代码中的项目一样,NSPredicate 也将是true 的@ 987654334@查看
【问题讨论】:
-
你说
Class不是obj-C类,所以这个问题有点混乱。数组包含什么,您想将它与什么进行比较? -
+1 答案不明显的好问题。
-
您能否详细说明您打算如何处理类对象数组?您的实际问题有一个答案(打电话给@bbum!),但它可能不如根据您的计划讨论使用它们的最佳方式实际。
标签: objective-c c type-conversion