ios - 在运行时 objective-c 中获取数组类型

标签 ios objective-c runtime

<分区>

在 objective-c 中是否有任何方法可以找到以下一种方式声明的属性类型: @property(nonatomic, strong) NSArray<CustomClass *> *array; 我可以获得此属性的类型作为 NSArray,但有什么方法可以获取 CustomClass 类型?

提前致谢。

最佳答案

无法在运行时接收有关泛型声明的信息。 Objective-C 泛型是最近添加到语言中的。它们仅用于编译时检查,因此不会创建任何额外的运行时信息。请注意,泛型声明并不严格阻止将其他类的对象存储在数组中 - 编译器警告可能会被抑制,尽管这是一种不好的做法。

但是,仍然有可能确定对象的类,存储在数组中。例如,您可以使用类似 [array valueForKey:@"class"] 的代码来接收对应于每个元素的类数组。

关于ios - 在运行时 objective-c 中获取数组类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35421294/

相关文章:

if-statement - Julia 中的一个简单的 'if' 语句将我的主筛的运行时间增加了 15 倍——为什么?

delphi - FreePascal RTTI。有没有办法调用方法?

ios - 将 NSDate 放入 UILabel 问题

ios - 如何将 UIImageView 旋转 20 度?

iphone - 在 iOS 7 中未观察到 UIAccessibilityInvertColorsStatusDidChangeNotification

iphone - 使用 iPhone SDK 查找 SRV 记录

iphone - 我可以提高当前 Modal ViewController 的动画速度吗?

objective-c - 如何检查是否已设置 NSArray

visual-c++ - 如何正确安装 MS VC++ 9 运行时?

iphone - 尝试写入普通目录时 Cocoa 错误 513