0

Я использовал этот учебник How do you add an in-app purchase to an iOS application? для SKPayment (verbatim), и у меня возникли проблемы с привязкой кнопок покупки на моей раскадровке к моему коду.Ошибка UIButton с SKPayment

- (IBAction)purchase:(SKProduct *)product{ 

Я продолжаю получать следующую ошибку.

[UIButton productIdentifier]: unrecognized selector sent to instance 0x7ffa08cfbe90 

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

- (IBAction)purchase:(SKProduct *)product{ 

без получения нераспознанной ошибки выбора?

ответ

0

Это потому, что IBAction ожидает sender в качестве своего первого параметра. И когда он «привязан» к UIButton, то UIButton - это sender (он автоматически отправляется). Вот почему вы получаете ошибку, UIButton не знает селектор productIdentifier.

Если вы внимательно посмотрите на ответ, связанный с SO, методы, связанные с IB, не являются таковыми. Этот вызов вызывается с [self purchase:someSKProduct], поэтому он не вызывает крушения по его/ее коду.

Ну, я не играл с StoreKitFramework, но кажется, что этот метод не должен быть IBAction (или здесь, на ответ, это запутанно, доказательство: ваша текущая проблема.). Это должно быть только -(void)purchase:(SKProduct *)product.

+0

Я попытался добавить '- (Недействительными) покупка: (SKProduct *) product' в мой код и запустив метод в моем методе IBAction, но я не уверен, что заменить объект SKProduct в методе IBAction, следовательно: '[self purchase: (SKProduct *)' – John

+0

Как вы определяете продукт? Какой SKProduct это? Возможно, посмотрите, как связанный ответ – Larme

+0

В коде из учебника, он не определен глобально, он определяется локально только его методу. '- (void) productsRequest: (SKProductsRequest *) request didReceiveResponse: (SKProductsResponse *) response { SKProduct * validProduct = nil;' – John

0

Вы должны связать свою кнопку покупки с номером (IBAction)tapsRemoveAds.

И как то, что сказал Larme, вы должны изменить:

(IBAction)purchase:(SKProduct *)product 

в

(void)purchase:(SKProduct *)product 
Смежные вопросы