我目前正在尝试在Objective-C中读取具有反射的类的属性。 我的NSArray可以很好地工作。
这是我的财产:
<embed type="text/html" src="mypage.html" width="100%" height="100%">
我可以使用以下方法成功访问班级的属性:
@property(nonatomic) NSArray<CustomObject*>* tabs;
所以我的财产名称是标签。都好。但是属性是“ T @” NSArray“,&,N,V_tabs”
如何获取有关NSArray的通用类型的信息? 提前谢谢
答案 0 :(得分:0)
除非您的NSArray的indexedSubscript(也称为[index]
)没有存储任何内容,否则它为空,只有Xcode知道您的意图,您想要在其中存储什么类型。
如此
@property(nonatomic) NSArray<CustomObject*>* tabs;
等同于
@property(nonatomic) NSArray<NSObject*>* tabs;
等同于
@property(nonatomic) NSArray<id>* tabs;
等同于
@property(nonatomic) NSArray* tabs;
上面的列表不是100%正确的,因为当您尝试混合数据类型并尝试进行编译时,Xcode可能会引发错误,因此它不应达到存储错误数据类型的地步。
除非未分配任何对象,否则它不会占用内存,因此无法在运行时询问它。
如果在设计模式中很重要,则可以创建自己的数据类型,该数据类型可以通过indexedSubscripts进行访问,并且即使是 empty ,也可以保留打算保留的数据类型的信息。但是值得考虑的是,这是否仍然是适合您想要实现的设计模式。