Как проверить изображение ноль или нет?
Мне нужно проверить, является ли изображение нулевым или нет, которое я назначил одной из пар [ключ, значение] в словаре. Мне нужно отправить словарь в качестве параметра в методе Alamofire Post. Но я не мог передать параметр. Я покажу, что я сделал. Разъясни мне, что я сделал не так! и дай мне решение.
var parameters: [String : AnyObject ] = [
"email" : "[email protected]",
"password" : "password",
"full_name": "XXX",
"profile_pic" : UIImage(named: "abc")!
]
Alamofire.upload(
.POST,
"http://abc/public/user/register",
multipartFormData: { multipartFormData in
for (key, value) in parameters {
multipartFormData.appendBodyPart(data: value.dataUsingEncoding(NSUTF8StringEncoding)!, name: key)
}
},
encodingCompletion: { encodingResult in
switch encodingResult {
case .Success(let upload, _, _):
upload.responseJSON { response in
debugPrint(response)
}
case .Failure(let encodingError):
print(encodingError)
}
}
)
Я сталкиваюсь с сообщением об ошибке: нераспознанный селектор отправлен в экземпляр. Я хотел бы получить успешный ответ, даже если profile_pic равен нулю или нет. Я получаю ответ успеха, если я добавляю изображение как это multipartFormData.appendBodyPart(fileURL: unicornImageURL, name: "unicorn")
,
Конечным результатом является то, что в ответе должно быть сказано, что регистрация пользователя прошла успешно, даже если он загружает изображение профиля или нет. Потому что это необязательное поле, верно?!
2 ответа
Вы не можете установить ключ на ноль в такой коллекции. Вам необходимо проверить, существует ли он.
var parameters: [String : AnyObject ] = [
"email" : "[email protected]",
"password" : "password",
"full_name": "XXX",
]
if let image = UIImage(named: "abc") {
parameters["profile_pic"] = image
}
Через некоторое время я наткнулся на этот ответ. Надеюсь это поможет. Да, мы не можем установить значение nil в коллекции согласно ответу Dare. Но мы можем пропустить значение, если мы не хотим, чтобы значение было включено в параметр с помощью необязательной цепочки и приведения типов. Посмотрите мой ответ здесь, как передать значение nil для одного из параметров в alamofire Post request