Как понять ios Crash Report с устройства, подключенного к Xcode?

Начиная с jQuery 1.7, вы должны использовать jQuery.fn.on :

$(staticAncestors).on(eventName, dynamicChild, function() {});

До этого рекомендуется использовать live() :

$(selector).live( eventName, function(){} );

Однако live() устарел в 1.7 в пользу on() и полностью удален в 1.9. Подпись live():

$(selector).live( eventName, function(){} );

... может быть заменена следующей on() сигнатурой:

$(document).on( eventName, selector, function(){} );

Например, если ваша страница динамически создавала элементы с именем класса dosomething, вы привязывали бы событие к родительскому, который уже существует (здесь есть нуль проблемы, вам нужно что-то, что существует для привязки, не привязка к динамическому контенту), это может быть (и самый простой вариант) - document. Хотя иметь в виду document, возможно, не самый эффективный вариант .

$(document).on('mouseover mouseout', '.dosomething', function(){
    // what you want to happen when mouseover and mouseout 
    // occurs on elements that match '.dosomething'
});

Любой родитель, который существует в момент привязки события, прекрасен. Например,

$('.buttons').on('click', 'button', function(){
    // do something here
});

применимо к

1
задан jamesMcKey 28 March 2019 в 03:17
поделиться

1 ответ

Да, это несимвольный журнал аварий. Проблема в том, что вызов [-SKPaymentQueue addPayment:] передал неверный указатель на платеж. Вот что говорит журнал:

Тип исключения: EXC_CRASH (SIGABRT)

и

Информация, специфичная для приложения: [1111 ]

abort () с именем

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

Обратный след показывает, какие функции были вызваны для прерывания:

Last Exception Backtrace:
 0   CoreFoundation                 0x1a4531ea4 __exceptionPreprocess + 228
 1   libobjc.A.dylib                0x1a3701a50 objc_exception_throw + 55
 2   CoreFoundation                 0x1a4438484 +[NSException raise:format:] + 115
 3   StoreKit                       0x1b860fc14 -[SKPaymentQueue addPayment:] + 675
 4   mapdocuments                   0x100e5c1e8 0x100dfc000 + 393704
 5   mapdocuments                   0x100e65ddc 0x100dfc000 + 433628

Они в обратном порядке вызова. Поэтому некоторый код в приложении или библиотеке mapdocuments вызывается в рамках StoreKit, в частности, метод -[SKPaymentQueue addPayment:]. Этот метод увидел, что переданное значение было недопустимым, и вызвало исключение. Исключение не было обнаружено при использовании блока @try / @catch, поэтому ОС прервала выполнение.

К сожалению, поскольку символы не были предоставлены, мы не знаем точную строку, которая вызвала -addPayment: с неверными данными. Однако, если вы создали приложение, у вас должны быть символы для него, и я думаю, что можно символизировать аварийный журнал, используя их. Я сам этого не сделал.

0
ответ дан user1118321 28 March 2019 в 03:17
поделиться
Другие вопросы по тегам:

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