无法使用Wordpress的高级自定义字段值

时间:2015-12-11 08:55:31

标签: ios json wordpress swift advanced-custom-fields

我正在尝试在Swift项目中使用我的Wordpress服务器中的值。我以JSON格式获取信息。我想要的值由"高级自定义字段"创建。在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)

得到这个结果: 的可选(&#34;测试&#34)

我使用此代码获取经度值:

let dict = nummer!["custom_fields"]
let longitude = dict!!["longitude"]
print(longitude)

结果: 的可选((     &#34; 40.233221&#34; ))

现在我想把它转换为双倍。但它返回nil:

let longitude = dict!!["longitude"] as? Double
print(longitude)

结果: nil

为什么它返回nil而不是double值?

2 个答案:

答案 0 :(得分:1)

当您使用as?时,您试图将展开的值向下转换为Double,但它不是Double它是Array

if let longitudeArray = dict!!["longitude"] as? Array<String> {
    if let longitude = Double(longitudeArray[0]) {
        print(longitude)
    }
}

答案 1 :(得分:0)

因为此变量是String而不是Double。你必须转换它

if let longitudeString = dict!!["longitude"] as? String {
    let longitude = Double(longitudeString)
}

if let longitudeString = dict!!["longitude"] as? String {
    let longitude = longitudeString.doubleValue
}