2010-06-04 1 views
1

특정 문자열로 명명 된 개체를 찾을 수 있습니까?목적 C 객체를 문자열 이름으로?

예 I는 PHP

$objectname="foo"; 
$foo="bar"; 
echo $$objectname="bar"; 

이 가능하다는 것을 사용합니까? objectbyname은 이에 대한 적절한 함수입니다.

답변

4

명명 된 개체를 속성 또는 사전에 저장 한 경우 가능할 수 있습니다. 그러면 다음과 같이 할 수 있습니다.

// Put object into dictionary 
[dictionaryWithObjects setValue:someNamedObject forKey:@"someNamedObject"]; 

// and then retrieve it 
id object = [dictionaryWithObjects valueForKey:@"someNamedObject"]; 

그리고 ObjectiveC가 해당 수준의 메타 프로그래밍을 지원하는지 잘 모르겠습니다.

0

NSClassFromString()을 사용하여 클래스를 얻을 수 있지만 특정 개체 인스턴스의 경우 이것이 가능하지 않다고 생각합니다.

2

PHP 에서처럼 보이지는 않지만 문자열에서 클래스를 가져올 수 있습니다. NSClassFromString 기능을 사용합니다.

예를 들어, 다음 두 라인은 동일

id a = [[NSClassFromString(@"NSString") alloc] init]; 
id a = [[NSString alloc] init];