Xcode как отлаживать все функции? [Дубликат]

Использование HTML5 и JavaScript, загрузка async довольно проста, я создаю логику загрузки вместе с вашим html, это не полностью работает, так как ему нужно api, но демонстрируйте, как это работает, если у вас есть конечная точка с именем /upload от root вашего сайта, этот код должен работать для вас:

const asyncFileUpload = () => {
  const fileInput = document.getElementById("file");
  const file = fileInput.files[0];
  const uri = "/upload";
  const xhr = new XMLHttpRequest();
  xhr.upload.onprogress = e => {
    const percentage = e.loaded / e.total;
    console.log(percentage);
  };
  xhr.onreadystatechange = e => {
    if (xhr.readyState === 4 && xhr.status === 200) {
      console.log("file uploaded");
    }
  };
  xhr.open("POST", uri, true);
  xhr.setRequestHeader("X-FileName", file.name);
  xhr.send(file);
}
File

Также имеется дополнительная информация о XMLHttpReques:

Объект XMLHttpRequest

Все современные браузеры поддерживают объект XMLHttpRequest. Объект XMLHttpRequest может использоваться для обмена данными с веб-сервером за кулисами. Это означает, что можно обновлять части веб-страницы без перезагрузки всей страницы.

Создать объект XMLHttpRequest

Все современные браузеры (Chrome, Firefox, IE7 +, Edge, Safari, Opera) имеют встроенный объект XMLHttpRequest.

Синтаксис для создания объекта XMLHttpRequest:

variable = new XMLHttpRequest ();

Доступ во всех доменах

Из соображений безопасности современные браузеры не разрешают доступ через домены.

Это означает, что и веб-страница, и файл XML, который она пытается загрузить, должны быть расположены на одном сервере.

В примерах в W3Schools все файлы XML, расположенные в домене W3Schools.

Если вы хотите использовать пример выше на одной из ваших собственных веб-страниц, загружаемые файлы XML должны находиться на вашем собственном сервере.

Подробнее , вы можете продолжить чтение здесь ...

35
задан Matrosov Alexander 30 November 2012 в 17:11
поделиться

3 ответа

  1. Запустите приложение в Xcode.
  2. Нажмите ⌘^Y (Debug -> Pause).
  3. Перейдите в консоль отладчика: ⌘⇧C
  4. Введите breakpoint set -r . -s <PRODUCT_NAME> (введите имя вашего приложения).

lldb ответит с помощью чего-то вроде ...

Breakpoint 1: 4345 locations

Теперь просто нажмите кнопку «Продолжить» .

breakpoint set - команда lldb для создания контрольных точек. Место указывается с использованием регулярного выражения (-r) в именах функций / методов, в данном случае ., которое соответствует любому методу. Опция -s используется для ограничения объема вашего исполняемого файла (необходимо исключить фреймворки).

При запуске приложения lldb теперь будет прерываться всякий раз, когда приложение попадает в функцию из вашего основного исполняемого файла.

Чтобы отключить тип точек останова breakpoint delete 1 (введите правильный номер точки останова).

54
ответ дан Nikolai Ruhe 26 August 2018 в 23:38
поделиться

Существует много возможностей, но невозможно установить точки останова только для ваших функций. Вы можете попробовать:

breakpoint set -r '\[ClassName .*\]$'

добавить точки останова ко всем методам в классе

breakpoint set -f file.m -p ' *- *\('

, чтобы добавить точки останова в все методы в файле

Вы также можете использовать его со многими файлами:

breakpoint set -f file1.m -f file2.m -p ' *- *\('

Ярлык:

br se -f file1.m -f file2.m -p ' *- *\('

Вы можете добавить точки останова ко всем методам во всех классах с некоторым префиксом (и это может мне только ваши классы)

br se -r . -s Prefix

Эта строка (wzbozon answer ):

breakpoint set -n viewDidLoad

установит точки останова для всех методов viewDidLoad во всех классах.

Я попытался, но не смог установить точки останова только на наши собственные методы.

3
ответ дан Piotr Wasilewicz 26 August 2018 в 23:38
поделиться

В некоторых случаях удобнее устанавливать точки останова только на некоторые из методов.

Используя LLDB, мы можем, например, поставить точку останова на все методы ViewDidLoad по имени.

(lldb) breakpoint set -n ViewDidLoad

Здесь «-n» означает по имени.

Кроме того, мы можем поместить контрольные точки по имени селектора:

(lldb) breakpoint set -S alignLeftEdges:

Здесь «-S "означает селектор.

12
ответ дан wzbozon 26 August 2018 в 23:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: