0
이 경고 메시지의 의미를 설명 할 수 있습니까?신속한 경고 메시지가 분명하지 않음
let x = cell.backgroundView!.layer.sublayers as! [CALayer]
에서강제 캐스트 '[의 CALayer]? " ~ '[CALayer]'는 선택 사항 만 언랩합니다. '!'를 사용하셨습니까?
이 경고 메시지의 의미를 설명 할 수 있습니까?신속한 경고 메시지가 분명하지 않음
let x = cell.backgroundView!.layer.sublayers as! [CALayer]
에서강제 캐스트 '[의 CALayer]? " ~ '[CALayer]'는 선택 사항 만 언랩합니다. '!'를 사용하셨습니까?
강제 캐스트를 사용하는 것은 의미가 없습니다. sublayers
은 선택적 배열을 반환합니다. 선택적 배열을 안전하게 언 랩핑해야합니다.
if let sublayers = cell.backgroundView?.layer.sublayers {
// do something with sublayers (which is a non-optional [CALayer])
}
또한 backgroundView
대신 !
후 ?
의 사용을주의.
스위프트 북에서 relevant sections을 읽음으로써 적절하게 옵션을 사용하는 방법을 배우십시오. 그렇지 않으면 앱이 다운됩니다. 결과에 대한 자세한 내용은 What does "fatal error: unexpectedly found nil while unwrapping an Optional value" mean?을 참조하십시오.
답장을 보내 주셔서 감사합니다. 귀하의 제안을 채택 할 때 두 번째 명령에 이상한 오류가 발생합니다. x = cell.backgroundView! .layer.sublayers는 오류 값으로 플래그 된 _ = x.map ({$ 0.removeFromSuperlayer()})을 보냅니다. '[CALayer]'유형의 'removeFromSuperlayer'회원이 없습니다 –
이제 완전히 다른 질문을하고 있습니다. 이 답변이 캐스트에 대한 원래 질문을 해결 한 경우이 대답을 수락하여 표시하십시오. 그런 다음 모든 관련 코드 및 오류 메시지와 함께 새로운 문제에 대한 새로운 질문을 게시하십시오. – rmaddy
답변을 수락했습니다 (위쪽 화살표를 클릭하면?). 두 번째 이슈는 내가 캐스트에 의해 해결했지만 (여전히!) 경고에 직면 한 나의 원래 문제였습니다. 제 문제를 해결해 주셔서 감사합니다. David –