【问题标题】:How to check the image is nil or not?如何检查图像是否为零?
【发布时间】:2016-04-20 14:11:54
【问题描述】:

我需要检查图像是否为零,我将其分配为字典中的 [key, value] 对之一。我需要将字典作为 Alamofire Post Method 中的参数发送。但我无法传递参数。我会展示我所做的。澄清我做错了什么!并给我解决方案。

var parameters: [String : AnyObject ] = [
        "email" : "123@gmail.com",
        "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 是否为 nil。如果我像这样附加图像,我会得到成功响应 multipartFormData.appendBodyPart(fileURL: unicornImageURL, name: "unicorn").

最终结果是,无论用户是否上传头像,响应都应该说用户注册成功。因为它是一个可选字段对吧?!

【问题讨论】:

    标签: ios swift post uiimage alamofire


    【解决方案1】:

    您不能在这样的集合中将键设置为 nil。您需要检查它是否存在。

    var parameters: [String : AnyObject ] = [
      "email" : "123@gmail.com",
      "password" : "password",
      "full_name": "XXX",
    ]
    
    if let image = UIImage(named: "abc") {
      parameters["profile_pic"] = image
    }
    

    【讨论】:

    • 我试过这种方式,但我得到了这个错误 AlamofirePostMethod[1234:123456] *** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'-[UIImage dataUsingEncoding:]:无法识别选择器发送到实例 0x7f84b24b8fc0'
    【解决方案2】:

    过了一会儿,我遇到了这个答案。希望这可以帮助。是的,我们不能按照 Dare 的回答将集合中的值设置为 nil。但是如果我们不希望通过可选链接和类型转换将值包含在参数中,我们可以跳过该值。在这里查看我的答案,how to pass a nil value for one of the parameter in alamofire Post request

    【讨论】:

      猜你喜欢
      • 2011-04-13
      • 2014-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多