2012-12-05 13 views
10

not much report on the crashऐप क्रैश [[SKPaymentQueue defaultQueue] addTransactionObserver: पर्यवेक्षक];

सब मैं दुर्घटना से प्राप्त कर सकते हैं कि जब मैं applicationDidBecomeActive

MyStoreObserver * observer = [[MyStoreObserver alloc] initWithContext:self.managedObjectContext andDelegate:self]; 

[[SKPaymentQueue defaultQueue] addTransactionObserver:observer]; 

में क्या लेकिन अजीब बात यह है कि मैंने पहले भी दो बार खरीद करने के लिए और यहां तक ​​कि अगर मैं एप्लिकेशन को नष्ट कर पाए हैं है सब कुछ दोबारा दोबारा दोबारा दोबारा मैं इस गड्ढे से बच नहीं सकता। यह तर्क नहीं लगता है। मैं समस्या के बिना अकेले पर्यवेक्षक को आवंटित कर सकता हूं और मैं डिफ़ॉल्ट भुगतान को बिना किसी समस्या के बुला सकता हूं लेकिन अगर मैं कतार में लेनदेन पर्यवेक्षक को जोड़ने का प्रयास करता हूं, तो जीवन रुक जाता है। यह एआरसी पर है और पर्यवेक्षक को जो प्रतिनिधि मैंने जोड़ा वह समस्या नहीं है। मुझे सुनिश्चित रुप से पता है।

मैं पर्यवेक्षक और कोई भी में हर विधि के लिए एक NSLog जोड़ दिया है दुर्घटना

समाधान से पहले कहा जाता हो

ठीक है, अच्छी तरह से यह लग रहा है पर्यवेक्षक की तरह कतार है और इस तरह से नहीं बनी रहती है पर्यवेक्षक को एक आवृत्ति चर होना चाहिए।

धन्यवाद

+0

शायद तुम एक जवाब के रूप में आप समाधान जोड़ सकते हैं और चाहिए:

फ्रेमवर्क Storekit के हेडर फाइल SKPaymentQueue.h अंदर स्पष्ट टिप्पणी पीछा कर रहा है इसे समाधान के रूप में चिह्नित करें, अन्यथा बक्षीस खुला रहेगा। –

उत्तर

10

ठीक है, अच्छी तरह से यह लग रहा है पर्यवेक्षक की तरह कतार द्वारा बनाए रखा है नहीं है और इस तरह पर्यवेक्षक एक उदाहरण चर होने की जरूरत है (या किसी तरह से बनाए रखा)।

+0

क्या आप कृपया कुछ नमूना कोड दे सकते हैं? –

+0

इंस्टेंस वैरिएबल का मतलब है कि आपको अपनी ऑब्जेक्ट पर पॉइंटर रखना चाहिए ताकि उसे हटाया न जाए। आप बस एक संपत्ति (मजबूत) बना सकते हैं जो आपके पर्यवेक्षक पर इंगित करता है –

1

इस उत्तर के लिए एक आधिकारिक स्रोत जोड़ने के लिए:

// Observers are not retained. 
// The transactions array will only be synchronized with the server while the queue has observers. 
// This may require that the user authenticate. 
- (void)addTransactionObserver:(id <SKPaymentTransactionObserver>)observer __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_3_0); 
संबंधित मुद्दे