Swift - 创建参数对象
问题描述:
我在创建alamofire的参数对象时遇到了问题。 一些String键没有“”以及一些字符串值。Swift - 创建参数对象
你们能告诉我我做错了什么吗?
provider_user_id provider_uid
设备 - > DPI 名 OS
maker-> 名
有人能向我解释为什么:
func callFineBackend(provider_uid:String!,provider_user_id:String!) -> String{
print("get token and post")
let screen = UIScreen.mainScreen().bounds
let res_x = Int(screen.width)
let res_y = Int(screen.height)
let devicename = String(UIDevice.currentDevice().name)
let os = String(UIDevice.currentDevice().systemVersion)
let mem_mb = Double(NSProcessInfo.processInfo().physicalMemory)
let provider_name = "facebook"
let dpi = 126
let xlatGPS = 34.951231
let xlonGPS = 43.714323
let stringLat = String(xlatGPS)
let stringLon = String(xlonGPS)
let headers: [String: String] = [
"Accept": "application/json",
"Content-Type":"application/json",
"X-Latitude": stringLat,
"X-Longitude": stringLon
]
let parameters: [String: AnyObject] = [
"maker": [
"name": "Apple"
],
"device": [
"name": devicename,
"mem_mb": mem_mb,
"dpi": dpi,
"res_x": res_x,
"rex_y": res_y,
"os": os
],
"provider_name": provider_name,
"provider_user_id": provider_user_id,
"provider_uid": provider_uid,
]
print(parameters)
打开到:
[
"provider_user_id": 12315123512, "device": {
dpi = 126;
"mem_mb" = 4294967296;
name = "iPhone Simulator";
os = "9.3";
"res_x" = 320;
"rex_y" = 480;
}, "provider_uid": EAAX,
"maker": {
name = Apple;
}, "provider_name": facebook
]
答
打印的内容没有错。
打印NSDictionary
时,只有包含不是字母或数字的字符时,字符串才被引号包围。
在这种情况下,parameters
是类型Dictionary
, 但parameters["maker"]
,parameters["device"]
等都是NSDictionary
类型的。
因为打印表现这样!发送数据到服务器,你会发现字典*希望*正确到达。 – luk2302