我们如何能在词典[字符串:字符串]的参数列表传递默认空值,同时发布到服务器的请求? Swift3

2019-10-30 12:17发布

在某些情况下,我必须张贴空值到服务器无论是作为一个默认值或者作为参数的value.I尝试过很多方法,但它使用Alamofire张贴一个要求。请帮助work.I'm didnt。

方法1

   var empty : String = ""
   let parameters = ["User-Id":userId,"search_cat": formattedArray ?? empty,"date1":ab ?? empty,"date2" : bc ?? empty,"docname" : empty
        ] as! [String : String]

方法2

   let parameters = ["User-Id":userId,"search_cat": formattedArray ?? "","date1":ab ?? "","date2" : bc ?? "","docname" : ""
        ] as! [String : String]

方法-3

 var nullvalue : String = ""
    if formattedArray == nil
    {
        formattedArray = ""
        print(formattedArray)

    }
    if ab == nil
    {
        ab = ""
        print(ab)

    }
    if bc == nil
    {
        bc = ""
        print(bc)

    }
    if nullvalue == nil
    {
        nullvalue = ""
    }
    parameters = ["User-Id":userId,"search_cat": formattedArray,"date1":ab ,"date2" : bc ,"docname" : nullvalue ] 
      as! [String : String]

方法- 4根据回答我改变PARAMETERLIST词典[字符串:AnyObject]但它仍然不是working.And给我的错误。

var ab:String?
var bc : String?
var formattedArray: String?

parameters = ["User-Id":userId ,"search_cat": formattedArray ?? NSNull() ,
"date1":ab ?? NSNull() ,"date2" : bc ?? NSNull(),
"docname" :  NSNull()] as! [String : AnyObject]

方法-4给我的错误尝试设置formattedArray? NSNull():不能与参数及其工作fine.Please帮助其他转换类型的值“NSNull”预期参数类型“字符串”。

Answer 1:

更新:这是你想要的吗?

class RequestParameter : NSObject{

var formattedArray : String!
var date1 : String!
var date2 : String!
var docName : String!
var userId : String!      // or whatever if hardCoded

func param() -> NSDictionary{

   var param : [String : String] = [:]

   param["User-Id"] = userId
   param["search_cat"] = formattedArray
   param["date1"] = date1
   param["date2"] = date2
   param["docname"] = docName

   return param as! NSDictionary
  }
}

您可以致电何地需要这些参数。 像var reqParam = RequestParameter() reqParam.param()

我真的不知道你的请求参数类型。 对于如。 如果它看起来像日期1 = 或别的东西。 这是我能回答你。 如果错了,也许有人会答好。

祝好运!!



Answer 2:

几天以前,我其实有同样的问题,并使用NSNull解决它()。

当转换我的课我想不管它的videoUrl财产发送包含的值,从而使后端可以在数据库中更新。

dict["videoUrl"] = videoUrl ?? NSNull()

这将设置键“videoUrl”与物业videoUrl的值,如果为零,NSNull的一个实例()。

Express.js然后读取此为未定义并插入一个空值到数据库中。

编辑:我看到了下面您的意见之一。 当使用类型的词典[字符串:字符串],你将永远无法传递一个零值。



文章来源: How we can pass default null value in parameter list of dictionary [String:String] while posting a request to server ? Swift3