title: Incomplete protocols warning when using a protocol define in a static lib (facebook-ios-sdk)
body: <p>I am trying to integrate the facebook ios SDK within my project which use ARC. As suggested in the <a href="https://web.archive.org/web/20140112014651/https://developers.facebook.com/docs/mobile/ios/build/" rel="nofollow noreferrer">facebook developer documentation</a> it is recommended to build the facebook SDK as a static lib for this type of integration. I run the script provided to build the static lib and then added to my project by:</p>
  <ol>
  <li><p>directly dragging all the contents of output directory lib:
  lib\facebook-ios-sdk (which contains the lib and associated headers)</p>
  </li>
  <li><p>in the Link Binaries with libraries / build phases section of my target project i have added my static lib explicitly</p>
  </li>
  </ol>
  <p>I have a class that is implementing all methods of FBSessionDelegate. However I have a couple of warning for each method of this delegate that are not seen as implemented by the compilo :</p>
  <pre><code>Semantic Issue
  Method in protocol not implemented
  Required for direct or indirect protocol 'FBSessionDelegate'
  </code></pre>
  <p>The methods concerned are those ones:</p>
  <pre><code>- (void)fbDidLogin;
  - (void)fbDidNotLogin:(BOOL)cancelled;
  - (void)fbDidExtendToken:(NSString*)accessToken
                 expiresAt:(NSDate*)expiresAt;
  - (void)fbDidLogout;
  - (void)fbSessionInvalidated;
  </code></pre>
  <p>I really don't understand why the compilo is giving me those warning :-\ Does anyone has an idea why we have such a behavior? I have seen in <a href="https://nabtech.wordpress.com/2012/02/02/facebook-ios-sdk-and-arc/" rel="nofollow noreferrer">this blog</a> that they add the whole facebook-ios-sdk to the project but ideally i just want to add the lib and not the full project.</p>
  <p>Any clarification / help would be greatly appreciated!</p>
  <p><strong>[EDIT]</strong>
  The issue I am mentioning can easily be reproduce by simply following the turorial of this page to test the connection with an app on facbook <a href="https://web.archive.org/web/20140112014651/https://developers.facebook.com/docs/mobile/ios/build/" rel="nofollow noreferrer">here</a>. In the following i have implemented the fDidLogin method and still I have a warning for this method...</p>
  <p>My header file look like:</p>
  <pre><code>#import &lt;UIKit/UIKit.h&gt;
  
  #import &quot;FBConnect.h&quot;
  
  @class SCLViewController;
  
  @interface SCLAppDelegate : UIResponder &lt;UIApplicationDelegate, FBSessionDelegate&gt;
  
  @property (strong, nonatomic) UIWindow *window;
  
  @property (strong, nonatomic) SCLViewController *viewController;
  
  @property (strong, nonatomic) Facebook *facebook;
  
  @end
  </code></pre>
  <p>and the .m:</p>
  <pre><code>#import &quot;SCLAppDelegate.h&quot;
  
  #import &quot;SCLViewController.h&quot;
  
  @implementation SCLAppDelegate
  
  @synthesize window = _window;
  @synthesize viewController = _viewController;
  @synthesize facebook = _facebook;
  
  - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
  {
       _facebook = [[Facebook alloc] initWithAppId:@&quot;MY-APP-ID&quot; andDelegate:self];
              
      NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
      if ([defaults objectForKey:@&quot;FBAccessTokenKey&quot;] 
          &amp;&amp; [defaults objectForKey:@&quot;FBExpirationDateKey&quot;]) {
          _facebook.accessToken = [defaults objectForKey:@&quot;FBAccessTokenKey&quot;];
          _facebook.expirationDate = [defaults objectForKey:@&quot;FBExpirationDateKey&quot;];
      }
     
      
      if (![_facebook isSessionValid]) {
          [_facebook authorize:nil];
      }
     
      self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
      // Override point for customization after application launch.
      self.viewController = [[SCLViewController alloc] initWithNibName:@&quot;SCLViewController&quot; bundle:nil];
      self.window.rootViewController = self.viewController;
      [self.window makeKeyAndVisible];
      
      
      return YES;
  }
  
  - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
    sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
      return [_facebook handleOpenURL:url]; 
  }
  
  
  - (void)fbDidLogin {
      NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
      [defaults setObject:[_facebook accessToken] forKey:@&quot;FBAccessTokenKey&quot;];
      [defaults setObject:[_facebook expirationDate] forKey:@&quot;FBExpirationDateKey&quot;];
      [defaults synchronize];
      
  }
  
  @end
  </code></pre>