我有一个充满不同类型对象的NSArray。让我们说一个是NSDictionary,另一个是NSData。 我如何从这个数组中随机选择一个对象,然后检查它是什么类型的对象。 所以如果它是一个NSDictionary,我会做方法A. 或者如果是NSData,我会做方法B.
我如何将其放入代码?
谢谢!
答案 0 :(得分:7)
转换为Objective-C
id obj = [array methodThatReturnsARandomObject];
if ([obj isKindOfClass:[NSDictionary class]]) {
a();
} else if ([obj isKindOfClass:[NSData class]]) {
UIImage *image = [UIImage imageWithData:obj]
}
或者你可以做到
NSObject *obj = [array methodThatReturnsARandomObject];
if ([obj isKindOfClass:[NSDictionary class]]) {
a();
} else if ([obj isKindOfClass:[NSData class]]) {
UIImage *image = [UIImage imageWithData:(NSData *)obj]
}
没关系。
答案 1 :(得分:1)
您可以使用随机数生成器,它将获得介于0和数组最后一个索引之间的数字。然后,一旦获得对象,就可以对从数组返回的对象使用isKindOfClass或isMemberOfClass方法。