2012-03-08 2 views
0

Ha-ii, я делаю покупку в приложении в своем приложении, мне нужно отключить кнопку, когда покупка контента в приложении будет успешной, поэтому я поставил NSuserdefault к моему коду для определения погоды его успеха или нет, но NSUserDefault работает только тогда, когда я обновляю страницу, я не включил кнопку, когда сообщение о успехе контента пришло, я включаю, когда я возвращаюсь на другую страницу и возвращаюсь, мой потребность передать экземпляр сообщение ViewController через notification.my кодКак передавать сообщения от одного класса другому через NSNotification

- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions { 
    for(SKPaymentTransaction *transaction in transactions) { 
     switch (transaction.transactionState) { 

      case SKPaymentTransactionStatePurchasing: 
       // Item is still in the process of being purchased 
       break; 

      case SKPaymentTransactionStatePurchased: 
       // Item was successfully purchased! 

       // --- UNLOCK FEATURE OR DOWNLOAD CONTENT HERE --- 
       // The purchased item ID is accessible via 
       // transaction.payment.productIdentifier 

       // After customer has successfully received purchased content, 
       // remove the finished transaction from the payment queue. 
       [[SKPaymentQueue defaultQueue] finishTransaction: transaction]; 
       [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"Transsucess"]; 
       break; 

      case SKPaymentTransactionStateRestored: 
       // Verified that user has already paid for this item. 
       // Ideal for restoring item across all devices of this customer. 

       // --- UNLOCK FEATURE OR DOWNLOAD CONTENT HERE --- 
       // The purchased item ID is accessible via 
       // transaction.payment.productIdentifier 

       // After customer has restored purchased content on this device, 
       // remove the finished transaction from the payment queue. 
       [[SKPaymentQueue defaultQueue] finishTransaction: transaction]; 
       break; 

      case SKPaymentTransactionStateFailed: 
       // Purchase was either cancelled by user or an error occurred. 

       if (transaction.error.code != SKErrorPaymentCancelled) { 
        // A transaction error occurred, so notify user. 
       [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"Transsucess"]; 
       } 
       // Finished transactions should be removed from the payment queue. 
       [[SKPaymentQueue defaultQueue] finishTransaction: 

transaction]; 
       break; 
     } 
    } 
} 

в моем anothervierwcontroller я хочу, чтобы передать значение Извещение InstEd значения Nsuserdefault. Как это сделать.пожалуйста, помогите мне.

ответ

2

в первый взгляд vieDidLoad добавить строку ..

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(ContentPurchased) name:@"Purchased" object:nil]; 

(сделать удалить наблюдателя в dealloc)

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

[[NSNotificationCenter defaultCenter] postNotificationName:@"Purchased" object:nil userInfo:nil]; 

Вы можете передать объект ЭСТ ..но я считаю, вы должны хранить детали покупки сделки в NSUserdefautls ..since это будет необходимо в следующих запусках приложения ..

Когда вы отправлятьуведомлениеContentPurchased метод вызывается в первый взгляд (вы должны добавить это в контроллер представления)

+0

поэтому я должен поставить [[NSNotificationCenter defaultCenter] postNotificationName: @ «Купленный» объект: nil userInfo: nil]; в кейс SKPaymentTransactionStateПокупка: правильно ?? затем добавьте [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector (ContentPurchased) имя: @ «Приобретенный» объект: nil]; это в моем представлении управления? Это два отдельных класса: – stackiphone

+0

да .. два отдельных класса и '[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector (ContentPurchased) имя: @« Приобретенный »объект: nil];' is to сделайте сначала. иначе метод не будет вызываться, даже если вы публикуете уведомление. – Shubhank

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

  • Нет связанных вопросов^_^