Ios nil与预期的参数类型';[NSObject:AnyObject]';
我使用的是Ios nil与预期的参数类型';[NSObject:AnyObject]';,ios,swift,Ios,Swift,我使用的是XCode 7.2和Swift 2.2。我有一个函数,它接受字典([NSObject:AnyObject])作为参数。但是,我想在不使用字典的情况下调用此函数,或者换言之,通过设置参数nil来调用此函数。如果我这样做,就会抛出: nil与预期的参数类型“[NSObject:AnyObject]”不兼容 我的代码是 self.silentPostData( persist.getObject( mdmiosagent_Constants.SERVERNAMEKEY) as S
XCode 7.2
和Swift 2.2
。我有一个函数,它接受字典([NSObject:AnyObject])
作为参数。但是,我想在不使用字典的情况下调用此函数,或者换言之,通过设置参数nil来调用此函数。如果我这样做,就会抛出:
nil与预期的参数类型“[NSObject:AnyObject]”不兼容
我的代码是
self.silentPostData(
persist.getObject(
mdmiosagent_Constants.SERVERNAMEKEY) as String,
serverport: persist.getObject(mdmiosagent_Constants.SERVERPORTKEY) as String,
serverurl: mdmiosagent_Constants.NATIVE_APP_SERVLET,
parameters: nil ,
urldata: jsonData
)
)
冲突的参数是代码中的命名参数。提前谢谢。只需将此
[:]
传递到您的函数中即可。只有可为空的类型(如可选类型或符合协议NilLiteralConvertible
的类型)可以为nil
,或与nil
进行比较。因此,您有以下选项:
1。使参数可选
将函数的参数转换为[NSObject:AnyObject]?
2。传递一本空字典
只要打电话:
self.silentPostData(
persist.getObject(
mdmiosagent_Constants.SERVERNAMEKEY) as String,
serverport: persist.getObject(mdmiosagent_Constants.SERVERPORTKEY) as String,
serverurl: mdmiosagent_Constants.NATIVE_APP_SERVLET,
parameters: [:],
urldata: jsonData
)
)
如果该方法需要一个非可选字典,请传递一个空字典。是否添加[NSObject:AnyObject]?对于函数的参数,什么类是
self
?这是一个外部库,不是苹果库吗?可能会将那一长行格式化为较小的行。请尝试[:]
或[NSObject:AnyObject]()
[]
是空数组的缩写形式,空NSData是NSData()
我尝试过,但抛出的错误与类型相同[NSObject:AnyObject]不能与数组文字一起使用。他的意思可能是[:]
你必须做[:]才能得到一本字典
是的,对不起;)坦克@Eendjewell,任何符合nillitelavergable
的类型都可以是nil
,如果它是相等的
,也可以与之进行比较。当然,答案的其余部分是完美的:)