1

다음 코드의 행을 따라 무언가를 사용하여 에 내 객체의 건물을 자동화하는 데 관심이 있습니다.헤더 파일의 속성과 구현 파일의 비교

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는 공용 속성과 개인 속성을 실제로 구분하지 않기 때문에이 작업을 수행하는 방법을 잘 모르겠습니다. 헤더 파일의 속성에만 관심이 있다는 것을 나타내는 방법에 대한 생각은 효과적으로 동일한 것을 시뮬레이션 할 수 있습니까?

+0

지키지 마십시오. 선명도가 영리합니다. – zaph

+1

그 코드는 실제로 아무 것도하지 않습니다. 실제로하고 싶은 것을 설명하고 싶다면 현실적인 방법으로 제안 할 수 있습니다. – Chuck

답변

1

간단히 말해서, 그렇지 않습니다. 이 정보는 컴파일 된 프로그램에서 사용할 수 없습니다. 정말로 원한다면이 작업을 수행하기 위해 사용자 정의 전 처리기를 작성해야합니다.