POST считают чем-то вроде метода типа фабрики. Вы включаете данные с ним для создания то, что Вы хотите и независимо от того, что находится на другом конце, знает, что сделать с ним. ПОМЕЩЕННЫЙ используется, чтобы обновить существующие данные в данном URL или создать что-то новое, когда Вы знаете то, чем будет URI, и это уже не существует (в противоположность POST, который создаст что-то и возвратит URL ему при необходимости).
Первое добавление -DDEBUG
к OTHER_CFLAGS
на целевом объекте отладки; это определит символ DEBUG
при создании отладочной сборки.
Затем добавьте простой макрос assert в заголовок префикса:
#ifdef DEBUG
#define MyAssert(val) _MyAssert(val)
#else
#define MyAssert(val) do { } while(0)
#endif
Затем создайте функцию _MyAssert
где-нибудь в модуле :
#ifdef DEBUG
void _MyAssert(int expression)
{
if (expression == 0) {
NSLog(@"Assertion failed!"); // Place breakpoint here
}
}
#endif
Наконец, создайте точку останова в строке NSLog
.
Ознакомьтесь с условными точками останова:
http: // www. cocoabuilder.com/archive/message/xcode/2008/10/22/25358[12157 impression
Что-то не так с простым макросом assert ()? Что-то вроде
assert(pointerToTest != nil);
остановит ваш процесс на этом этапе, если условие не истинно. Если вы работаете под отладчиком, вам будет представлена трассировка стека вызовов, которые привели к неудачному утверждению. Если вы хотите запускать его каждый раз, когда вы попадаете в определенный путь кода, вы можете сделать
assert(false);
. Я считаю эти утверждения чрезвычайно полезными для проверки того, что все IBOutlets не равны нулю, когда окно или представление вызывается из NIB.
Я просто установил точку останова в том месте, где хочу остановиться. Xcode постоянно запоминает точки останова, поэтому каждый раз, когда я запускаю приложение с помощью gdb, оно останавливается в этой точке.
Если вы хотите прервать работу при сбоях утверждения, хорошее место для установки точки останова находится в функции objc_exception_throw в Среда выполнения Objective-C, которая фактически вызывает исключение. В окне «Выполнить»> «Показать»> «Точки останова» дважды щелкните строку «Дважды щелкните для символа», затем введите имя.
что на самом деле вызывает исключение. В окне «Выполнить»> «Показать»> «Точки останова» дважды щелкните строку «Дважды щелкните для символа», затем введите имя. что на самом деле вызывает исключение. В окне «Выполнить»> «Показать»> «Точки останова» дважды щелкните строку «Дважды щелкните для символа», затем введите имя. Полезный человек на форуме разработчиков Apple посоветовал мне использовать asm («ловушка»)
при работе на устройстве и asm («int3»)
при запуске на симуляторе. Это заставляет программу взламывать отладчик, если вы запустили свою программу в режиме отладки (Option-Command-Y).
( __ builtin_trap ()
также ломается в отладчик, но вы не можете продолжить после этого . assert (false)
завершает программу с сообщением, но не вторгается в отладчик.)
edit
Оказывается, это тоже работает :
#define Debugger () {поднять (SIGINT); }
Думаю, принцип тот же.
Я использую это:
#define Debugger () {kill (getpid (), SIGINT); }
Думаю, работает в симуляторе и на устройстве .. сборка не требуется!