오늘 아침에 코드를 실행하는 데 이상한 오류가 발생했습니다. 여기 Swift에서 테스트 한 후 선택적 값의 래핑을 해제하는 동안 오류가 발생했습니다.
내 간단한 객체입니다fatal error: unexpectedly found nil while unwrapping an Optional value
class FQ {
var rating: Float?
var phone: String?
init(rating: Float?, phone: String?)
{
self.rating = rating
self.phone = phone
}
}
하지만 내 if 문 (FQ.match() -> FQ?
)에서 전무 값을 테스트하고 있습니다 :
let fq: FQ? = FQ.match(self.place!.name, location: self.place!.location)
if fq != nil && fq!.phone != nil {
self.phone.text = fq!.phone
} else {
self.phone.text = ""
}
그러나 디버깅 :
Printing description of fq: (project.FQ?) fq = Some {
rating = 6.0999999
phone = "+33 1 53 10 87 19"
}
값이 nil이 아닙니다. 전화 번호로 레이블 값을 설정할 때 디버거가 실패합니다.
내가 이해할 줄 알았는데 선택 사항이지만 그렇지 않은 것 같습니다. 내가 뭘 놓치고 있니?
나는 그들이 마침내 Objc의 API에서 암시 적으로 풀어 물건을 모두 변환 할 생각을? 그러나 Swift의 최신 버전이 아니라면 이것이 가능한 대답입니다. –
문제점을 발견했습니다. 내 UIlabel은 잘 선언되었지만 병합 중에 콘센트 링크가 사라졌습니다. 내 컨트롤러에 내 레이블을 연결해야만 이제는 정상적으로 작동합니다. 오류 메시지는 약간 혼란스럽고 오도 된 것입니다. – maxwell2022
@AlvinThompson : 사용자 지정보기 컨트롤러, 뷰 등의 UI 구성 요소는 인스턴스화시 생성되지 않기 때문에 항상 (암시 적으로 래핑되지 않은) 선택 사항이며, 변경되지 않을 것으로 생각됩니다. – Antonio