저는 프로젝트에서 KVC를 사용합니다.KVC valueForKey 대신 __NSCFConstantString을 반환합니다.
@property (nonatomic, strong) NSString *notes;
내가 해당 속성에있는 NSString 객체를 넣을 :
그리고, 내 클래스 중 하나에, 나는 재산 쓴
그리고 값을 설정하기 전에를, 나는 검사 할 목적지의 클래스 명.
a = [ newContainer valueForKey:@"notes"];
if(a != nil && ![ b isKindOfClass:[ a class ] ])
// here b is the new NSString value
그 결과 xcode는 클래스가 동일하지 않음을 나타냅니다.
(gdb) po [ b class ]
__NSCFString
(gdb) po [ a class ]
__NSCFConstantString
나는 그다지 중요하지 않으며 __NSCFConstantString은 NSString의 개인 하위 클래스라는 것을 읽었습니다.
하지만 제 경우에는 객체를 업데이트하기 전에 객체의 모든 속성을 검사해야합니다.
그리고 난 내 코드에서 가지고 싶지 않아 :
// OK, classes aren't the same ...
// ---- BUT WE MUST test it again to know if a is a NSString and b a subclass of NSString or anything else ...
beurk!
누구나 동일한 문제가 있습니까?
도움을 주셔서 감사합니다.