2017-12-20 37 views

답변

2

강제 캐스트를 사용하는 것은 의미가 없습니다. 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?을 참조하십시오.

+0

답장을 보내 주셔서 감사합니다. 귀하의 제안을 채택 할 때 두 번째 명령에 이상한 오류가 발생합니다. x = cell.backgroundView! .layer.sublayers는 오류 값으로 플래그 된 _ = x.map ({$ 0.removeFromSuperlayer()})을 보냅니다. '[CALayer]'유형의 'removeFromSuperlayer'회원이 없습니다 –

+2

이제 완전히 다른 질문을하고 있습니다. 이 답변이 캐스트에 대한 원래 질문을 해결 한 경우이 대답을 수락하여 표시하십시오. 그런 다음 모든 관련 코드 및 오류 메시지와 함께 새로운 문제에 대한 새로운 질문을 게시하십시오. – rmaddy

+0

답변을 수락했습니다 (위쪽 화살표를 클릭하면?). 두 번째 이슈는 내가 캐스트에 의해 해결했지만 (여전히!) 경고에 직면 한 나의 원래 문제였습니다. 제 문제를 해결해 주셔서 감사합니다. David –