이 코드 줄까지 좁혀졌지만 충돌을 피할 수있는 방법을 이해하지 못했습니다.JSON 데이터에서 NSString에 NSString을 할당 할 때 크래시가 발생합니다.
NSString *variantImageUrl = variantEdge[@"node"][@"image"][@"src"];
SRC의 값은
2017-11-21 17:23:27.023988+0800 NWMPos[3218:2124447] -[NSNull objectForKeyedSubscript:]: unrecognized selector sent to instance 0x1b2a01650
2017-11-21 17:23:27.026199+0800 NWMPos[3218:2124447] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSNull objectForKeyedSubscript:]: unrecognized selector sent to instance 0x1b2a01650'
만큼 SRC의 값이
잘 작동 적절한 문자열입니다 그러나 나는이 할 수없는 다음과 같은 오류 메시지가 널 (null) 응용 프로그램이 충돌하는 경우 충돌을 피할 수 있도록 할당하기 전에 null 값을 확인하십시오.
는 것 같다'그 variantEdge [ "이미지"@] [ "노드"@] '또는'variantEdge [@ "node"]'가 null입니다. https://stackoverflow.com/questions/15237199/nsnull-objectforkeyedsubscript-unrecognized-selector-sent-to-instance를 확인하십시오. – Larme
아. 무슨 뜻인지 알지. src가 null이지만 실제로 키 전체가 사라 졌다고 생각 했어. 이미지 자체가 null 인거 같아. 그걸 테스트하는 방법을 모르겠다. 링크를 읽었지 만 여전히 혼란 스럽네. –
https://stackoverflow.com/questions/4839355/checking-a-null-value-in-objective-c-that-has-been-returned-from-a-json-string? 이전 링크 응답의 카테고리를 사용하는 경우, null 대신 'variantEdge [@ "node"]'에 대해 nil을 반환해야하며 충돌이 발생하지 않아야합니다. – Larme