찾다

 >  Q&A  >  본문

iOS: 널이 아닌 열거형 유형을 인코딩할 때 널 포인터 참조가 있습니까?

구조는 대략 다음과 같습니다. 클래스 A에는 클래스 B의 배열이 포함되어 있고 클래스 B에는 열거형 C의 변수가 포함되어 있습니다.
A는 10개의 B 요소를 초기화할 때 그림과 같이 초기화됩니다. 클래스 A는 수정되지 않았습니다. 그러나 B에서 s를 인코딩하면(열거 C는 Status) s의 값이 잘 출력되지만, (s)를 인코딩하면 오류가 보고됩니다(두 클래스에 중단점을 두었습니다). 문장을 인쇄하고 인코딩했는데 후자는 떠나자마자 충돌이 발생했습니다)
으아악

다음은 몇 가지 콘솔 정보입니다:

Normal


* 포착되지 않은 예외 'NSInvalidArgumentException'으로 인해 앱 종료, 이유: '-[_SwiftValue encodeWithCoder:]: 인식할 수 없는 선택기가 인스턴스 0x608000444fb0으로 전송됨'


동시에 AppDelegate 상단에 Thread 1: signal SIGABRT가 있습니다. 구글에서 검색해 보니 객체가 일찍 출시되었기 때문인 것 같은데, 아직 인코딩 전에 값이 출력될 수 있습니다


값을 입력할 수 있지만 값이 예상한 값이 아닙니다. 인코딩 전 루프에서 A 클래스 B 배열의 각 B의 열거형 값이 하나씩 대체됩니다(객체 B를 직접 대체하지 않음)

淡淡烟草味淡淡烟草味2740일 전891

모든 응답(1)나는 대답할 것이다

  • 阿神

    阿神2017-05-31 10:38:30

    이유는 열거형을 직접 컴파일하면 여러 문제가 발생하기 때문입니다. 곡선은 열거형의 값을 저장하고 읽습니다.

    회신하다
    0
  • 취소회신하다