Назначение словаря типа [String:AnyObject] для [String: String] дает нулевую ошибку
Эй, я новичок в разработке Swift & IOS. Я столкнулся с проблемой, которую искали много. Но не получил никакого решения. У меня есть словарь типа [String: AnyObject] и хочу назначить его другому словарю типа [String:String]. XCode показывает ошибку, которая является этим "Неустранимая ошибка: неожиданно найденный ноль, разворачивая Дополнительный val", который я утроил, проверил, нет никакого значения ноля. Ниже приведен мой фрагмент кода Словарь здесь
let dictFormData = ["name": endorsement.name,
"designation":endorsement.designation,
"location": endorsement.location,
"region": endorsement.region,
"effectiveDateString":endorsement.effectiveDate,
"marriageDateString": "ss" ,
"genderId": String(format: "%ld", selectedGenderLookUpId),
"relationId": String(format: "%ld", selectedRelationLookUpId),
"plan": "ss",
"employeeId": AICLPolicyModel.getSelectedPolicy()?.employeeID as Any,
"requestTypeId": 35,
"policyId": AICLPolicyModel.getSelectedPolicy()?.policyID as Any,
"isEmployee": isemployee,
"filePath":"ss",
"fileName": "ss",
"empRemarks": endorsement.remarks,
"hrRemarks": "ss",
"adminRemarks": "ss",
"memberCode": AICLPolicyModel.getSelectedPolicy()?.memberCode as Any,
"requestStatusId": 32,
"customerId": AICLPolicyModel.getSelectedPolicy()?.clientID as Any
]
Вот назначение одного словаря другому.
let formData = (dictFormData as? [String : String])!
В этой строке он снова показывает ошибку. Я совершенно уверен, что нет значения nil.
1 ответ
Словарь типа [String:AnyObject]
не может быть опущен до [String:String]
так как типы несовместимы.
Следовательно dictFormData as? [String:String]
оценивает nil
из-за того, что условное снижение не выполняется - вы можете принудительно развернуть это nil
с !
и вы получите аварию.
Вы явно помещаете не строковые значения в dictFormData
, так что вы не сможете использовать простой унылый, чтобы получить [String:String]
толковый словарь.