本文介绍了布尔使用AnyObject时被视为INT的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用的类型词典&LT的PARAMS名单;弦乐,AnyObject> 在斯威夫特的iOS应用程序来保存一些参数,最终将传递给web服务。如果我是一个布尔值保存到这个字典,然后打印出来,它显示为可选(1),所以它被转换为int。我无法发送一个int和需要这是真。下面的示例code。

  VAR PARAMS =字典<弦乐,AnyObject>()
PARAMS [测试] =真
的println(PARAMS [测试])

我怎样才能得到这个保存为一个实际的真/假值,而不是作为一个整数?

注意事项

这正与AFNetworking使用,这样的参数都要求是形式 AnyObject!

的AFNetworking结构如下:

  manager.GET(小于#URLString:串#>中参数:< #AnyObject#>中成功!<#((AFHTT prequestOperation !,AnyObject) -  GT;无效)##(AFHTT prequestOperation!AnyObject) -  GT;无效#>中失败:!!!<#((AFHTT prequestOperation!NSError) - >无效)##(AFHTT prequestOperation!NSError) -  GT;!虚空#>)

在参数的说法就是我传入词典<弦乐,AnyObject方式>


解决方案

而不是:

  VAR PARAMS =字典<弦乐,AnyObject>()

尝试:

  VAR PARAMS =字典<弦乐,任何>()

Documentation:https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/TypeCasting.html#//apple_ref/doc/uid/TP40014097-CH22-XID_448

In this case it appears you need a Dictionary and the service is expecting "true" as opposed to the bool value.

I recommend creating a function to convert your bool value to a String and using that to set your params["tester"].

Example:

param["tester"] = strFromBool(true)

and then define the function strFromBool to accept a bool parameter and return "true" or "false" depending on its value.

这篇关于布尔使用AnyObject时被视为INT的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-21 23:55