Самый простой способ получить обратное геокодированное текущее местоположение из iOS

Я понял из другого вопроса здесь: Определите страну пользователя iPhone , в которой можно узнать текущую страну, в которой находится пользователь iPhone.

И это довольно удобно для многих целей. Однако можно ли было бы пойти еще глубже и сделать вывод по iOS (если у нее есть информация), в каком штате или городе находится пользователь?

Я полагаю, что следующим шагом были бы услуги обратного геокодирования, если бы этого не было. возможное.. Класс * _obj2; void doThis (Class * obj) {} void create () {Class * obj1 = new Class (); Class obj2; doThis (obj1); doThis (& obj2); _obj1 = obj1; _obj2 ...

Пример:

Class *_obj1;
Class *_obj2;

void doThis(Class *obj) {}

void create() {
    Class *obj1 = new Class();
    Class obj2;

    doThis(obj1);
    doThis(&obj2);

    _obj1 = obj1;
    _obj2 = &obj2;
}

int main (int argc, const char * argv[]) {

    create();

    _obj1->doSomething();
    _obj2->doSomething();

    return 0;
}

Это создает 2 объекта, создает указатели на них, затем main () вызывает метод для каждого. Объект Class создает символ * и сохраняет строку C "Hello!" в этом; деаллокатор ~ Class () освобождает память. Метод doSomething () выводит «buff:% s» с помощью printf (). Достаточно просто. Теперь, если мы запустим его, мы получим следующее:

Dealloc
Buff: Здравствуйте!
Buff: ¯ø_ˇ

Очевидно, что объект стека здесь не работает - очевидно, что при выходе из функции указатель _obj2 указывает на место в стеке. Вот почему я использовал объекты кучи в моем предыдущем вопросе, который люди сказали мне, что это «глупо».

Итак, первый вопрос: если , как я могу преобразовать объект стека (obj2) в объект кучи, чтобы он не удаляется после выхода create ()? Я хочу получить прямой ответ, а не высокомерное «вы делаете это неправильно», как это сделали многие. Потому что в этом случае объекты стека не могут работать, поэтому объекты кучи кажутся единственным выходом. РЕДАКТИРОВАТЬ: Кроме того, было бы полезно преобразование обратно в объект стека.

Второй вопрос: конкретный пример «неправильных» объектов кучи создавал новый вектор * с использованием оператора new . Если динамическое размещение объектов STL неверно, то каков правильный путь? Очевидно, что если вы создаете их как объекты стека, он терпит неудачу, потому что они немедленно освобождаются, но мне сказали (опять же, очень высоким -ranking member), что их динамическое распределение может повредить кучу. Итак, как это правильно делать?

5
задан Robert Harvey 20 February 2011 в 21:39
поделиться