我正在Dictionary<String,AnyObject>Swift iOS应用程序中使用类型的参数列表来保存一些最终将传递给Web服务的参数。如果我将Bool保存到此字典中然后打印,它会显示为“ Optional(1)”,因此正在将其转换为int。我无法发送一个int,并且需要将其设为“ true”。下面的示例代码。
Dictionary<String,AnyObject>
var params = Dictionary<String,AnyObject>() params["tester"] = true println(params["tester"])
我怎样才能将其保存为实际的true / false值而不是整数?
注意事项
这与AFNetworking一起使用,因此参数必须采用以下形式 AnyObject!
AnyObject!
AFNetworking结构如下:
manager.GET(<#URLString: String!#>, parameters: <#AnyObject!#>, success: <#((AFHTTPRequestOperation!, AnyObject!) -> Void)!##(AFHTTPRequestOperation!, AnyObject!) -> Void#>, failure: <#((AFHTTPRequestOperation!, NSError!) -> Void)!##(AFHTTPRequestOperation!, NSError!) -> Void#>)
“参数”参数是我所传递的Dictionary<String,AnyObject>。
代替:
var params = Dictionary<String,AnyObject>()
尝试:
var params = Dictionary<String,Any>()
Any可以代表任何类型的实例,包括函数类型。
文档: https : //developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/TypeCasting.html#//apple_ref/doc/uid/TP40014097-CH22-XID_448
在这种情况下,您似乎需要一个Dictionary,并且服务期望的是“ true”,而不是bool值。
我建议创建一个将bool值转换为String的函数,并使用该函数来设置params [“ tester”]。
例:
param["tester"] = strFromBool(true)
然后定义函数strFromBool以接受bool参数并根据其值返回“ true”或“ false”。