2012-02-06 6 views
0

Я использую этот учебник http://www.raywenderlich.com/2797/introduction-to-in-app-purchases для создания покупок в моем приложении.В приложении не работает

Время от времени этот код работает или работает. Я знаю, это звучит смешно, но это моя проблема.

Например: Первый запуск приложения (все пункты загрузки и показывает в таблице и у меня есть можно приобрести любой из этого), но в следующий раз (например, второй запуск) я получаю ошибку на этой линии:

SKProduct *product = [[InAppRageIAPHelper sharedHelper].products objectAtIndex:0]; 

ошибка

Нагрузочный приложение из-за неперехваченного исключением индекса 'NSRangeException' 0 за пределы для пустого массива

+1

какой код? какая ошибка? –

+1

В дополнение к комментарию Винса: Пожалуйста, предоставьте больше информации о том, что происходит, и также расскажите, что вы пробовали до сих пор, поэтому никто не тратит время на то, что вы уже пробовали. –

+0

Сообщение в поле «Не приобретается: com.company.sb.pack5» (но это сообщение время от времени) –

ответ

0

Эта проблема решена после выполнения жесткого сброса для моего устройства.

+0

Что значит «после выполнения жесткого сброса для моего устройства»? Настройка -> сброс -> Сбросить все настройки? – Jacky

1

использовать этот код, когда вы используете способ оплаты ..... как кнопка оплаты нажимается

NSLog(@"Products - %@",[IAPClockDietHelper sharedHelper].products); 

Вы нашли, когда Вы начинаете App первый раз, то у вас есть продукты клапан ... и когда вы используете приложение Второй раз затем продукты имеют нулевое значение .... Так что ваше приложение Краш ... проверить ..

+0

NSLog (@ «Продукты -% @», [IAPClockDietHelper sharedHelper] .products); теперь - для этого журнала я не получаю ни одного элемента в продуктах NSArray. но почему это не всегда крах? –

+0

В какой-то момент я получаю полный массив моего элемента, а в следующий раз у меня нет ни одного элемента в моем массиве продуктов. –

+0

см. Этот URL http://stackoverflow.com/questions/3324596/storekit-skproductsrequest-crash – Deepesh

2

Если вы хотите, чтобы избежать такого рода аварии просто поставить условие перед обработкой продукта, как это:

if ([[InAppRageIAPHelper sharedHelper].products count] >0) 
{ 
    SKProduct *product = [[InAppRageIAPHelper sharedHelper].products objectAtIndex:0]; 
    //product processing goes here 
} 
else 
{ 
    NSLog (@"Warning: no products returned"); 
} 
+0

привет! да, это правильный контроль, но почему у меня нет продуктов после вызова метода - (void) productsRequest: (SKProductsRequest *) request didReceiveResponse: (SKProductsResponse *) ответ? –

+0

это сложно сказать без фона. возможно, если вы разместите код методов делегата и метод, в котором вы создаете свой запрос. Прежде чем вы это сделаете, обязательно запустите все идентификаторы продуктов - перезапишите их FFFFFF или что-то еще. Также не забудьте проверить это руководство, оно не должно занимать вас более 15 минут: https://developer.apple.com/library/mac/documentation/NetworkingInternet/Conceptual/StoreKitGuide/StoreKitGuide.pdf –

+0

благодарит всех. да, мой вопрос довольно распространен.Учебник луча-Вендерлиха обычно отлично работает (и он отлично работает, но время от времени). Я думаю, что это моя ошибка. Спасибо за ссылку! –

Смежные вопросы