不能使用Wordpress的高级自定义字段值
我想在我的Swift项目中使用我的Wordpress服务器的值。我以JSON格式获取信息。我想要的值是由wordpress服务器上的“高级自定义字段”创建的。不能使用Wordpress的高级自定义字段值
我从另一个视图控制器加载并使用此代码加载:
let nummer = NSUserDefaults.standardUserDefaults().valueForKey("nummer")
print(nummer)
然后我得到这样的结果:
{
attachments = (
);
author = {
description = "";
"first_name" = "";
id = 1;
"last_name" = "";
name = admin;
nickname = admin;
slug = admin;
url = "";
};
categories = (
);
"comment_count" = 0;
"comment_status" = open;
comments = (
);
content = "<p>text</p>\n";
"custom_fields" = {
latitude = (
"22.324432"
);
longitude = (
"40.233221"
);
};
date = "2015-12-11 08:12:31";
excerpt = "<p>text</p>\n";
id = 37;
modified = "2015-12-11 08:12:31";
slug = "test-2";
status = publish;
tags = (
);
title = test;
"title_plain" = test;
type = post;
url = "http://localhost:8080/wordpress/2015/12/11/test-2/";
}
拿到冠军我用这个代码:
let dict = nummer!["title"] as? String
print(dict)
并得到这个结果: 可选(“te ST“)
我用这个代码来获取经度值:
let dict = nummer!["custom_fields"]
let longitude = dict!!["longitude"]
print(longitude)
结果: 可选(( ”40.233221“ ))
现在我想将它转化成双倍。但它返回零:
let longitude = dict!!["longitude"] as? Double
print(longitude)
结果:零
为什么它返回nil,而不是双重价值?
当您使用as?
时,您试图将展开的值向下转换为Double
,但它不是Double
这是一个Array
。
if let longitudeArray = dict!!["longitude"] as? Array<String> {
if let longitude = Double(longitudeArray[0]) {
print(longitude)
}
}
因为这个变量是String
而不是Double
。你必须把它转换
if let longitudeString = dict!!["longitude"] as? String {
let longitude = Double(longitudeString)
}
或
if let longitudeString = dict!!["longitude"] as? String {
let longitude = longitudeString.doubleValue
}
我相信你的第二个需要你向下倾向'NSString',而不是'String'。无论如何,最好使用第一个。 –
我尝试了他们两个,然后我使用打印(经度),但它不打印任何东西。 –
我想你的代码,然后我后,使用打印(经度)。但没有任何反应。 –
有趣。看起来你没有一个字符串,然后在'字典!! [“经度”]''。如果你在这行'let long = dict !! [“longitude”]之后设置了一个断点,那么'longitude'在调试器中是什么类型? –
我得到这个结果:(AnyObject ?!)$ R0 =一些{instanceoftype = 0x00007fb62350a380 - > 0x00000001066e2ae0(void *)0x00000001066e2b08:__NSCFArray } –