Programming

Objective-C에서 Java의 "instanceof"키워드와 동등한 것은 무엇입니까?

procodes 2020. 5. 16. 22:53
반응형

Objective-C에서 Java의 "instanceof"키워드와 동등한 것은 무엇입니까?


객체 (예 someObject:)가 다른 유형의 변수 (예 :)에 할당 가능 합니까 (캐스트 가능) 여부를 확인하고 싶습니다 SpecifiedType. Java에서는 다음과 같이 쓸 수 있습니다.

someObject instanceof SpecifiedType

관련 질문은 객체의 런타임 유형이 다른 유형과 같은지 여부를 찾는 것입니다. Java에서는 다음과 같이 쓸 수 있습니다.

someObject.getClass().equals(SpecifiedType.class)

Objective-C에서 어떻게이 작업을 수행 할 수 있습니까?


시도 [myObject class]객체의 클래스를 반환합니다.

다음과 정확하게 비교할 수 있습니다.

if ([myObject class] == [MyClass class])

직접 MyClass식별자 를 사용하지는 않습니다 .

마찬가지로, 객체가 다음을 사용하여 클래스의 하위 클래스인지 확인할 수 있습니다.

if ([myObject isKindOfClass:[AnObject class]])

Jon Skeet과 zoul이 제안한대로.


에서 위키 백과 :

예를 들어, Objective-C에서 일반 ObjectNSObject(Cocoa / OpenStep)는 메소드에 대한 인수가 지정된 클래스의 인스턴스 인 경우 isMemberOfClass:리턴 하는 메소드 제공합니다 true. isKindOfClass:인수가 지정된 클래스에서 상속되는 경우 메소드는 유사하게 true를 리턴합니다.

isKindOfClass:instanceof그것의 소리에 가장 가깝 습니다.


NSObject 문서 에서 isKindOfClass : 메소드를 참조하십시오 . (이러한 질문에 대한 일반적인 경고 단어는 객체 클래스를 확인하는 것이 종종 무언가 잘못하고 있다는 표시입니다.)

참고 : https://stackoverflow.com/questions/536396/in-objective-c-what-is-the-equivalent-of-javas-instanceof-keyword

반응형