2014-10-28 80 views
0

我需要在Swift上为iOS 7+上的应用程序初始化Dictionary。 在iOS 8上一切正常,但在iOS 7上,字典始终为空。iOS 7上的Swift词典

我试图

var parameters = Dictionary<String, String>() 
parameters["grant_type"] = "password" 

let parameters = ["grant_type" : "password"] 

在这两种情况下的结果是

Printing description of parameters: ([String : String!]) parameters = {}

这是斯威夫特的bug或我在这里做什么了吗? 仅供参考:我正在使用Xcode 6.1(Swift 1.1)

+0

你在什么时候初始化和打印这本词典? – Kirsteins 2014-10-28 13:11:19

+0

@Kirsteins:init在func的开头,打印在代码执行后立即完成。此外,还有一个额外的细节:我使用该字典进行Web服务登录,并且问题不在控制台上打印,因为在iOS 7的服务器端,我没有收到数据。已经测试过两个不同的Xcode项目。 – 2014-10-28 13:17:51

+0

我不知道它是否是一个错误,但最糟糕的是,你可以退回到NSDictionary。另外,试着让它成为可选的,并用'var parameter:Dictionary 启动它'' – Ian 2014-10-28 16:23:35

回答

2

实际上,swift字典似乎工作,但调试将显示空值。答案是,调试,从斯威夫特字典转换为NSDictionary中

print(swiftDictionary as NSDictionary) 

原始

斯威夫特字典没有在iOS的7工作无论出于何种原因。他的解决方法是使用NSDictionary。