클래스에 대한 성찰을 수행 할 때, 나는 다음과 같은 코드를 사용합니다목표 C 반성
if([object isKindOfClass:[NSNumber class]]){
NSLog(@"I am an NSNumber: %@", object);
}
NSLog(@"Properties:%@", [object class]);
출력은 다음과 같습니다 결과는 타입의 NSNumber에 대한 __NSCFNumber 이유
I am an NSNumber: 320
Properties:__NSCFNumber
누구든지 설명 할 수 있습니까? 나는 또한 NSArray를가로 식별됩니다주의 :
[email protected]"Class name: %@.", NSStringFromClass([object class]);
그리고 당신이 얻을 것이다 : 내가 직접 귀하의 질문에 대답 할 수
__NSArrayI
또한 '__NSCFNumber'는 NSNumber와 CFNumber 사이의 수신자 부담 브리징에서 파생 된 것이라고 생각합니다. 비슷한 결과가'[@ ""class]'('__NSCFString')에서 발생합니다. –
Objective-C 환경 (NS)과 Core Foundation 환경 (CF)에는 본질적으로 동일한 클래스가 존재하기 때문에 재미있는 NSCFNumber 클래스 이름을 설명하는 "무료 브리지"가 있으며이 둘은 서로 교환하여 사용할 수 있습니다 . –
감사합니다. 나는 자바와 C# 배경에서 왔는데, "인터페이스에 프로그래밍하는"것과 같다. (정확하게 이해한다면) – PhillyNJ