iphone - 如何在 objective-c 中使用 id 变量?

标签 iphone objective-c cocoa-touch casting types

我有一个包含两种类型对象的 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/

相关文章:

iphone - 如何获取一个巨大的视频文件的切片数据

objective-c - BlogEntry 上的内存泄漏在哪里?

ios - 如何将图片保存到 iPhone 照片库?

html - 在 HTML 和 CSS 中使图像移动响应

ios - NSArray索引超出范围错误

iphone - MonoTouch 的条形扫描仪?

ios - UIScrollView 分页自动布局和 Storyboard

iphone - iOS 5 - 应用程序运行良好,iOS 4 - 卡在 [UIWebView alloc]

iphone - UIWebview 手势 iOS

iphone - 是否可以使用 Xcode 4 为 IOS 4.0 编译 iPhone 应用程序