Мне было интересно использовать что-то в строках следующего кода для , чтобы автоматизировать строительство моих объектов (так как их много со множеством свойств):Идентификация свойств в файле заголовка по сравнению с файлом реализации
MyObject *myObject = [[myObject alloc] init];
unsigned int numberOfProperties = 0;
objc_property_t *propertyArray = class_copyPropertyList([MyObject class], &numberOfProperties);
for (NSUInteger i = 0; i < numberOfProperties; i++)
{
objc_property_t property = propertyArray[i];
NSString *propertyName = [NSString stringWithUTF8String:property_getName(property)];
if (propertyName)
{
id valueForProperty = [myObject valueForKey:propertyName];
[myObject setValue:valueForProperty forKey:propertyName];
}
}
free(propertyArray);
Однако то, что я заметил, что этот код будет пытаться запустить не только от свойств в моем файле заголовка, но и все мои особенности реализации, а также, что я не хочу.
Поскольку Objective-C фактически не отличает общедоступные и частные свойства, я не уверен, как это сделать. Любые мысли о том, как указать, что меня интересуют только свойства в файле заголовка, чтобы эффективно имитировать одно и то же?
Не делайте этого, ясность побеждает умнее. – zaph
Этот код на самом деле ничего не делает. Если вы хотите объяснить, что вы на самом деле пытаетесь сделать, мы можем предложить реалистичный способ сделать это. – Chuck