Назначение словаря типа [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] толковый словарь.

Другие вопросы по тегам