我想创建一个基于Objective-C的类,在运行时对所有属性(不同类型的)执行操作。由于属性的名称和类型并不总是已知的,因此我该如何实现这样的操作?
@implementation SomeBaseClass
- (NSString *)checkAllProperties
{
for (property in properties) {
// Perform a check on the property
}
}
编辑:在自定义- (NSString *)description:
重写中,这将非常有用。
id value = [self valueForKey:@"propertyName"]
。当你同时拥有基本类型(int、float等)和对象类型(NSString等)的返回类型时,会变得稍微复杂一些,但基本原理仍然适用。 - Andrew Madsen[self valueForKey:@"propertyName"]
可以正常工作。-valueForKey:
的返回类型是 id。 - Andrew Madsen