2013-03-18 5 views
3

나는, 이걸위한 기술 용어가 목표 C에서 궁금 모른다 두 가지가 맞지 않습니다. 내가 원하는 것은 변수를 동적으로 선언하는 것이다. 감사합니다. .문자열에서 변수 유형을 선언 할 수 있습니까? 분명히</p> <pre><code>NSClassFromString(aClassName) *var; </code></pre> <p>또는</p> <pre><code>[NSClassFromString(aClassName) class] *var; </code></pre> <p>위 :이 같은 변수를 선언 할 수있는 경우

답변

8

몇 가지 유형 인 경우 동적 테스트 할 수 있습니다. 예를 들어 동적으로 NSString을 입력하려는 경우 다음과 같이 할 수 있습니다.

id ivar; 
Class myClass = NSClassFromString(@"NSString"); 

ivar = [[myClass alloc] initWithString:@"abc"]; 
1

당신은 idvar을 선언해야 한 다음 원하는 인스턴스화 있습니다 :

var = [[NSClassFromString(aClassName) alloc] init]; 

유형을 선언하는 유일한 점은 컴파일 타임 유형 검사이다, 그래서이 안 문제는 처리 할 수있는 객체에만 메시지를 던지기 만하면됩니다.

1

id은 동적 유형 지정 변수의 유형입니다. 변수가 특정 클래스와 일치하는지 확인해야한다면 -isKindOfClass:을 사용할 수 있습니다.

클래스 당신은 id 유형의 바르를 확인한 다음이 동적으로 입력해야 [var isKinkdOfClass:NSClassFromString(aClassName)]

관련 문제