2011-08-27 2 views
2

Objective C의 학습 연습으로 임의의 NSObject를 반환하는 메소드를 작성해야합니다.
내가 따라야 할 접근법은 모든 런타임 객체와 itirate의리스트를 얻고 NSObject를 얻고 리턴하는 것이다.NSObject의 무작위 객체를 반환하는 메소드를 얻는 방법

먼저 이것이 최선의 방법인지 잘 모르겠습니다. 두 번째로 내가 사용하고 코드가 thisobjc_getClassList 링크를 기반으로하지만, Xcode4에 내가 시간 오류를

warning: Semantic Issue: Implicit declaration of function 'objc_getClassList' is invalid in C99 
warning: Semantic Issue: Implicit declaration of function 'classIsSubclassOfClass' is invalid in C99 
나는 다음과 같은 헤더를 추가하는 시도

하지만

#import <objc/runtime.h> 
#import <objc/objc-class.h> 
#import <objc/objc-runtime.h> 

더 좋은

를 컴파일 얻고 있지만 둘 다 저를 돕고 여전히 경고하고있다.

그래서 나는 이것이 올바른 접근 방식이 두 가지
1에 도움을 기쁘게 할 수 있고 내가 this code이 엑스 코드 4 경고를주지 얻을 수있는 방법
2를 달성하기 위해 노력하고 무엇 무엇을하지 않을 경우입니다을 달성하기 위해

답변

2

글쎄, objc_getClassListobjc/runtime.h에 선언되어 있으므로이를 포함하거나 가져와야합니다.

다른 부분은 사용하기 전에 declare your function이 필요합니다. 파일의 최상위 레벨에서, 또는 당신은 다음을 포함 파일에, 당신은 몸없이, 함수 헤더를 넣어 :이 컴파일러는 함수에 대해 알 수 있습니다

BOOL classIsSubclassOfClass(const Class aClass, const Class subclass); 

; 함수를 사용해야하는 모든 파일에서 #include이 선언을 정의 할 수 있습니다 (즉, 본문 채우기).

0

그럼 원하는 것은 NSObject에서 상속받은 어떤 클래스 나 클래스를 얻는 것입니다.

나는 이것이 올바른 접근 방법이라고 생각하지 않습니다. 임의의 수업을받을 필요가 없습니다. 너는 그걸로 무엇을 할 것인가?

배열에 사용할 수있는 알려진 클래스의 하위 집합을 추가하고 싶을 수도 있습니다. 그리고 그 배열에서 무작위로 하나를 선택하십시오.

관련 문제