0
두 문자열을 비교하려면 - (BOOL)isEqualToString:(NSString *)aString
이 문자열은 숫자가 포함 된 -(id)objectForKey:(id)aKey
을 사용하는 사전의 개체입니다.NSString을 NSCFDecimal로 처리 할 수 있습니까?
내가 [object class]
를 사용하여 이러한 문자열 클래스를 검사 할 때, 아무리 내가 그들을 주조 그들이 어떻게 ==
을 사용하여 비교 할 필요 NSCFDecimal
수 있다는 NSString *
, 그것을 보여주는 유지를 할 수 없습니다. isEqualToString
을 사용하려면 오류가 발생합니다.
왜 이런 일이 일어 났는지 설명 할 수 있습니까?
이'는 NSString * str을 = (있는 NSString *) [사전 objectForKey 같은 주조 의미 아무튼 : @ "numberKey" ]; '내가 의도 한대로하지 않을 것인가? – petershine
@Peter No; 객체의 클래스 **는 ** 형 변환 때문에 절대로 ** 변경되지 않습니다. 'NSCFDecimal' 객체가'NSString' 객체라고 생각하도록 컴파일러를 속일 뿐이지 만 여전히 NSCFDecimal 객체입니다. –
@Bavarious 오브젝트가 원래 사전에 추가 될 때 문자열로 설정 되더라도? 그것은 숫자로만 된 문자열을 사용하는 것입니다. '. @ "12345"'objectForKey : (id) aKey'를 사용하여 문자열 객체를 숫자로 반환하면 NSCFDecimal이 될 수 있습니까? – petershine