JSON에서 파싱되는 null 값 문제가 있습니다. 엔티티를 UILabel과 연결할 때 널 타입이라면 응용 프로그램이 충돌합니다. 모든 연결 집합에서 null을 확인하는 것보다보기에 null 값을 표시하는 좋은 방법이 있습니까?JSON의 Null 값
감사
JSON에서 파싱되는 null 값 문제가 있습니다. 엔티티를 UILabel과 연결할 때 널 타입이라면 응용 프로그램이 충돌합니다. 모든 연결 집합에서 null을 확인하는 것보다보기에 null 값을 표시하는 좋은 방법이 있습니까?JSON의 Null 값
감사
if (objectHoldingJsonValue == [NSNull null]) {
// you have a null value, move in other value
}
클래스 NSNull이 같은 상황을위한 것입니다. 당신이를 통과하지 않도록하려면
id myValue = // get value from collection
// method one (recommended, as you could have more than one instance of NSNull)
if ([myValue isKindOfClass:[NSNull class])
{
// null value
}
// method two, not recommended
if (myValue == [NSNull null])
{
// null value
}
해답은 없지만 사전이나 배열에 null로 된 엔티티가 있다면 어떻게 될까요? null보다 약간의 가치를 내기 위해 모든 것을 반복해야합니까? – kforkarim
:
그것의사용법은 다음과 유사 이다 값 null
(이 0x0)이 허용되지 않습니다 컬렉션 (NSArray
, NSDictionary
등)에 사용된다 json으로 개체의 컬렉션을, 당신이 할 수 하위 클래스 UILabel의 및 NULL 인 반대 값을 검증하는 "텍스트"속성에 대한 세터를 (예를 들어, 리처드의 접근 방식 사용) - 탈 이상 : 물론
- (void) setText:(NSString *)textValue
{
if ([textValue isKindOfClass:[NSNull class]]) textValue = nil;
[super setText:textValue];
}
을 , 타크 이 접근 방식을 사용하면이 NULL 값으로 인해 문제가 발생할 수있는 응용 프로그램의 다른 상황을 열어 둘 수 있습니다. 따라서 데이터 모델의 컨텍스트에서 유효성 검사/제거가 선호 될 수 있습니다.
JSON 사전에서 루팅을위한 가장 간단한 방법입니다. 응용 프로그램에서 NSNull``의 인스턴스를 두 개 이상 가질 수
[dictionary enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
if ([obj isKindOfClass:[NSNull class]]) [dictionary setValue:[NSString stringWithString:@""] forKey:key];
} ];
주, 그래서 나는'-isKindOfClass를 사용하여 실제로 추천 할 것입니다 : NSDictionary와 함께 작동, 변경할 필요는 없습니다 '. –