IOS Mapview设置区域崩溃

时间:2017-12-04 10:31:11

标签: ios swift xcode swift3 swift4

当我尝试为地图视图设置区域时,我的应用程序崩溃了self.mapView.setRegion方法。

我会从API获取位置详细信息,例如经度,纬度,精度。

#include "Jsonbuilder.h"
#include <QPair>
#include <QJsonObject>
#include <QJsonValue>
#include <Global.h>
#include <QDebug>
#include <QMapIterator>
#include <QJsonArray>

JsonBuilder::JsonBuilder(){
    document = new QJsonDocument(QJsonArray());
}

void JsonBuilder::CreateContact(QMap<QString, QList<QString>> map){
    QJsonObject contactObj;
    QJsonObject detailObj;
    QJsonObject addressObj;
    QJsonObject date;

    contactObj.insert(Global::KEY_TYPE_OBJ,QJsonValue("contact"));

    QMapIterator<QString, QList<QString>> it(map);

    while (it.hasNext()) {

        it.next();
        qDebug()<< "Key value = "+it.key();
        if(it.key() == Global::KEY_FIRST_NAME){
            contactObj.insert(Global::KEY_FIRST_NAME,QJsonValue(it.value()[0]));
            qDebug()<< "create firstName in Json " + it.value()[0];
        }

        if(it.key() == Global::KEY_LAST_NAME){
            contactObj.insert(Global::KEY_LAST_NAME,QJsonValue(it.value()[0]));
            qDebug()<< "create LastName in Json "+ it.value()[0];
        }

        if(it.key() == Global::KEY_PSEUDO){
            QJsonArray Pseudos;
            foreach (QString contact, it.value()) {
                Pseudos.append(QJsonValue(contact));
                qDebug()<< "create Pseudo in Json "+ contact;
            }
            contactObj.insert(Global::KEY_PSEUDO,QJsonValue(Pseudos));
        }

        //Detail Object
        if(it.key() == Global::KEY_DETAIL_ROLE){
            detailObj.insert(Global::KEY_DETAIL_ROLE,QJsonValue(it.value()[0]));
            qDebug()<< "create DetailRole in Json "+ it.value()[0];
        }

        if(it.key() == Global::KEY_DETAIL_ORGANIZATION){
            detailObj.insert(Global::KEY_DETAIL_ORGANIZATION,QJsonValue(it.value()[0]));
            qDebug()<< "create DetailOrganization in Json "+ it.value()[0];
        }

        if(it.key() == Global::KEY_DETAIL_DEPARTMENT){
            detailObj.insert(Global::KEY_DETAIL_DEPARTMENT,QJsonValue(it.value()[0]));
            qDebug()<< "create DetailDepartment in Json "+ it.value()[0];
        }

        if(it.key() == Global::KEY_DETAIL_FUNCTION){
            detailObj.insert(Global::KEY_DETAIL_FUNCTION,QJsonValue(it.value()[0]));
            qDebug()<< "create DetailFunction in Json "+ it.value()[0];
        }

        if(it.key() == Global::KEY_PHONE){
            QJsonArray phones;
            foreach (QString phone, it.value()) {
                phones.append(QJsonValue(phone));
                qDebug()<< "create Phones in Json "+phone;
            }
            contactObj.insert(Global::KEY_PHONE,QJsonValue(phones));
        }

        if(it.key() == Global::KEY_EMAIL){
            QJsonArray emails;
            foreach (QString email, it.value()) {
                emails.append(QJsonValue(email));
                qDebug()<< "create Emails in Json "+email;
            }
            contactObj.insert(Global::KEY_EMAIL,QJsonValue(emails));

        }

        //Dates Object
        if(it.key() == Global::KEY_BIRTHDAY){
            date.insert(Global::KEY_BIRTHDAY,QJsonValue(it.value()[0]));
            qDebug()<< "create Birthday in Json "+it.value()[0];
        }

        if(it.key() == Global::KEY_WEDDING){
            foreach (QString dateWedding, it.value()) {
                date.insert(Global::KEY_WEDDING, QJsonValue(dateWedding));
                qDebug()<< "create wedding in Json "+dateWedding;
            }
        }

        //Address Object
        if(it.key() == Global::KEY_STREET){
            addressObj.insert(Global::KEY_STREET,QJsonValue(it.value()[0]));
            qDebug()<< "create street in Json "+it.value()[0];
        }

        if(it.key() == Global::KEY_POSTAL_CODE){
            addressObj.insert(Global::KEY_POSTAL_CODE,QJsonValue(it.value()[0]));
            qDebug()<< "create PostalCode in Json "+it.value()[0];
        }

        if(it.key() == Global::KEY_CITY){
            addressObj.insert(Global::KEY_CITY, QJsonValue(it.value()[0]));
            qDebug()<< "create city in Json "+it.value()[0];
        }

        if(it.key() == Global::KEY_COUNTRY){
            addressObj.insert(Global::KEY_COUNTRY, QJsonValue(it.value()[0]));
            qDebug()<< "create Country in Json "+it.value()[0];
        }
    }

    contactObj.insert(Global::KEY_DETAIL,QJsonValue(detailObj));
    contactObj.insert(Global::KEY_ADDRESS_OBJ,QJsonValue(addressObj));
    contactObj.insert(Global::KEY_DATE,QJsonValue(date));

    if(document->isArray()){
        document->array().append(contactObj);
    }
    else {
        qDebug()<<"JsonDocument not ready for insert";
    }

    qDebug()<< "Doc in function create : ";
    qDebug()<< *document;
}

void JsonBuilder::CreateMessage(QMap<QString, QString> map){

}

JsonBuilder::~JsonBuilder(){
    delete document;
}

我想显示经度和纬度的引脚

Crash Xcode Swift code Image.

这是我的代码:

 {
          "latitude": -96.790127,
          "longitude": 32.782054,
          "bearing": 233,
          "altitude": 23423,
          "accuracy": 20
 }

0 个答案:

没有答案