FBRequestDelegate only works on AppDelegate?

I want to encapsulate all my Facebook interactions within a FacebookFacade class to keep things clean and tidy. I have an instance of the iOS SDK Facebook class within my FacebookFacade.

My problem is that when I make a Graph API call within the facade, such as:

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

The only method of FBRequestDelegate that gets called is requestLoading: and nothing else. I have tried putting similar code in other places, like in controllers and other models, and there too not all of the FBRequestDelegate methods get called, only requestLoading:.

In fact the only way I can get the other FBRequestDelegate methods to be called is to put all my Facebook logic in the AppDelegate and make my AppDelegate the FBRequestDelegate.

Why is this the case? Am I missing something here? I definitely do not want to use the AppDelegate as my FBRequestDelegate as I don't want to confuse the purpose of the AppDelegate.

Thanks.

Answers


Had the same problem this afternoon. Finally solved it: You HAVE TO make your FBRequest from the MAIN thread. Otherwise underlying NSURLConnect (in facebook object) never starts.


You can share your appDelegate with the other controllers in your application.

I solved this problem by importing my AppDelgate (which instantiates and allocates the facebook object in it) into my interface, i.e

#import "MyAppDelegate.h"

interface MyViewController: UIViewController <FBRequestDelegate, FBDialogDelegate, FBSessionDelegate>

This way, i can create a pointer to point to the delegate object and use the facebook methods in where i need to.

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

Let me know if this doesn't work


Make sure that the initial object is not being released while facebook is working in the background. If it is, when facebook goes to call the delegate and finds it nil or catches an error, it will not call back.


Need Your Help

Indent C block comments in Emacs

c emacs comments

I'm trying to configure emacs to indent my C block comments nicely.

Regular expression restricting unwanted ones as well

java regex

I had written a regular expression to not allow duplicate words similar to SU MOTO in a text area.The idea is to restrcit words that are similar as shown here

About UNIX Resources Network

Original, collect and organize Developers related documents, information and materials, contains jQuery, Html, CSS, MySQL, .NET, ASP.NET, SQL, objective-c, iPhone, Ruby on Rails, C, SQL Server, Ruby, Arrays, Regex, ASP.NET MVC, WPF, XML, Ajax, DataBase, and so on.