如何检查图像是不是为零?

Posted

技术标签:

【中文标题】如何检查图像是不是为零?【英文标题】: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").

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

【问题讨论】:

【参考方案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

【讨论】:

以上是关于如何检查图像是不是为零?的主要内容,如果未能解决你的问题,请参考以下文章

检查图像点是不是与圆相交

如果附件为零,如何在报表上隐藏附件(图像)对象?

如何检查消息收集器是不是收集了图像?以及如何获取该图像的 Discord URL/proxyURL?

如何检查图像是不是存在于特定位置?

如何使用GD检查图像是不是具有透明度?

如何检查图像是不是有任何文字?