我有一个包含两种类型对象的 NSArray。我们称它们为 Apple 和 Orange。
Apple *myApple = [self.searchQueryResults objectAtIndex:indexPath.row];
当我构建我的单元格时,我不知道我的数组中的类型是苹果还是橘子。如何使用通用 id 类型来存储对象,然后进行适当的转换?
最佳答案
您可以使用 isKindOfClass:(Class)aClass
测试类类型:
if ([myObject isKindOfClass:[Apple class]])
// do stuff
我不确定为什么你认为你必须施法。 NSArray 不关心你在里面存的是什么类型的对象,所以当你把它拉出来的时候,它仍然是同一个对象。但是如果你愿意,你仍然可以通过做类似的事情来转换
Apple *myApple = (Apple *)myObject;
无论如何,知道类的类型应该足以让您采取适当的行动,因为我的理解是您在同一个表中显示这两种类型,您真正需要做的就是适本地显示它们的不同属性.
关于iphone - 如何在 objective-c 中使用 id 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3481537/