2010-12-29 18 views
5

मैं चीजों को साफ और साफ रखने के लिए FacebookFacade कक्षा के भीतर अपने सभी फेसबुक इंटरैक्शन को समाहित करना चाहता हूं। मेरे पास FacebookFacade के भीतर आईओएस एसडीके फेसबुक क्लास का एक उदाहरण है।FBRequestDelegate केवल AppDelegate पर काम करता है?

[self.facebook requestWithGraphPath:@"me" andDelegate:self]; 

FBRequestDelegate का एकमात्र तरीका कहा जाता हो जाता है कि requestLoading: और कुछ भी नहीं और है:

मेरे समस्या यह है कि जब मैं इस तरह के रूप मुखौटा के भीतर एक ग्राफ़ API कॉल, बनाते हैं। मैंने अन्य स्थानों जैसे नियंत्रकों और अन्य मॉडलों में समान कोड डालने का प्रयास किया है, और वहां भी FBRequestDelegate विधियों को नहीं कहा जाता है, केवल requestLoading:

वास्तव में एक ही रास्ता मैं प्राप्त कर सकते हैं अन्य FBRequestDelegate तरीकों के नाम से जाना AppDelegate में अपने सभी फेसबुक तर्क रख दिया और मेरी AppDelegateFBRequestDelegate बनाना है।

ऐसा क्यों है? क्या मुझसे कोई चूक हो रही है? मैं निश्चित रूप से AppDelegate का उपयोग अपने FBRequestDelegate के रूप में नहीं करना चाहता क्योंकि मैं AppDelegate के उद्देश्य को भ्रमित नहीं करना चाहता हूं।

धन्यवाद।

उत्तर

1

सुनिश्चित करें कि प्रारंभिक ऑब्जेक्ट जारी नहीं किया जा रहा है जबकि फेसबुक पृष्ठभूमि में काम कर रहा है। यदि ऐसा है, तो जब फेसबुक प्रतिनिधि को कॉल करने के लिए जाता है और उसे कोई त्रुटि मिलती है या उसे पकड़ती है, तो वह वापस कॉल नहीं करेगी।

2

आप अपने ऐप को अपने एप्लिकेशन में अन्य नियंत्रकों के साथ साझा कर सकते हैं।

मैं अपने AppDelgate (जो को दर्शाता है और इसमें फेसबुक वस्तु आवंटित करती है) मेरी इंटरफेस में, यानी

#import "MyAppDelegate.h" 

interface MyViewController: UIViewController <FBRequestDelegate, FBDialogDelegate, FBSessionDelegate> 

इस तरह आयात करके इस समस्या का समाधान, मैं प्रतिनिधि वस्तु को इंगित करने के लिए एक सूचक बना सकते हैं और जहां मुझे आवश्यकता है वहां फेसबुक विधियों का उपयोग करें।

-(void) someFunction{ 
     MyAppDelgate *sharedAppDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate] 
     [sharedAppDelegate.facebook dialog:@"feed" andDelegate:self]; 
} 

मुझे पता है कि अगर यह

+0

मैंने यह कोशिश की, मेरे दृश्य नियंत्रक के प्रतिनिधियों को अभी भी कॉल नहीं किया गया है! प्रतिनिधि में आपने अपना फेसबुक कितना सही सेटअप किया ताकि आप इसे व्यू कंट्रोलर में इस्तेमाल कर सकें? –

7

एक ही समस्या इस दोपहर था काम नहीं करता हूँ। अंततः इसे हल किया: आपको मुख्य थ्रेड से अपना FBRequest बनाना है। अन्यथा अंतर्निहित NSURL कनेक्ट (फेसबुक ऑब्जेक्ट में) कभी शुरू नहीं होता है।

+0

हे भगवान, यह सिर्फ मुझे बचाया। मैंने इस फेसबुक अनुरोध को इतनी देर तक डिबगिंग किया है। उनके दस्तावेज में इसका उल्लेख क्यों नहीं किया गया है? –

+0

मुझे लगता है कि यह NSURLConnection और रन लूप से अधिक संबंधित है। लेकिन उन्हें मुख्य धागे पर ग्राफ अनुरोध करने की सलाह देनी चाहिए। – ikarius

संबंधित मुद्दे