当前位置: 首页 > 面试题库 >

使用AnyObject时将Bool视为int

艾茂学
2023-03-14
问题内容

我正在Dictionary<String,AnyObject>Swift
iOS应用程序中使用类型的参数列表来保存一些最终将传递给Web服务的参数。如果我将Bool保存到此字典中然后打印,它会显示为“
Optional(1)”,因此正在将其转换为int。我无法发送一个int,并且需要将其设为“ true”。下面的示例代码。

var params = Dictionary<String,AnyObject>()
params["tester"] = true
println(params["tester"])

我怎样才能将其保存为实际的true / false值而不是整数?

注意事项

这与AFNetworking一起使用,因此参数必须采用以下形式 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”。



 类似资料:
  • 问题内容: 嗨,我有一个NSMutableArray,我尝试这样做: 如何将Int64变量添加到NSMutableArray()? 问题答案: 您正在使用基础数组(NSMutableArray),因此应使用基础编号对象: 您还可以使用本机swift数组:

  • 我正在使用简单的查询从数据库中检索用户信息。 然后,我尝试获取一个名为isconfired的列(在数据库中表示为位类型列)的值,并将其转换为bool。 然后我得到一个FormatException错误,指出“输入字符串的格式不正确”。 我看到了一个类似的问题,其答案提供了以下代码: 但这不适用于我的案例,因为我不知道isconfired列的索引,也不想知道它。我想使用列名。

  • 我曾尝试使用GStreamer管道将mp4视频转换为avi视频,但它是在没有声音的情况下转换的 gst launch-t-v filesrc location=源。mp4!qtdemux!ffdec\U h264!视频/x-raw-yuv!avimux!filesink location=结果yuv。avi公司

  • 以下代码不打印任何内容: 但以下代码打印: 当为时,是否有比添加语句更好的方法打印或?

  • 问题内容: 今天在与Swift交往时,我遇到了一件奇怪的事情。这是我开发的单元测试,显示了使用Swift的AnyObject时的一些意外行为。 这段代码简化了一些其他代码,其中只有一个Swift函数只能返回。 不出所料,在创建的实例之后,将其强制转换为并设置另一个变量,由于没有这样的属性,因此无法编译该属性。 但令人惊讶的是,编译器接受了一个名为的属性,因为on上有该名称的属性。看起来,只要它在运