FB总结,关于kill app ,about momery


关于登陆,状态的保存。


注意

 _facebook= [[Facebookalloc] initWithAppId:kAppId];

的初始化状态,和位置。

application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions


登陆成功后,通过facebook下面的fbSessiondelegate,中的实现方法fbDidLogi保存,口令和过期.两个值


-(void)fbDidLogin{
    
    NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];
    [defaults setObject:[[FBLocateAppDelegate sharedAppDelegate].facebook accessToken] forKey:KToken];
    [defaults setObject:[[FBLocateAppDelegate sharedAppDelegate].facebook expirationDate] forKey:KDate];
    [defaults synchronize];
}



方案1,对于facebook对象,声明在delegate中的时候,获取和保存的方法。




- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
    
    
    
    _facebook= [[Facebook alloc] initWithAppId:kAppId];
    
    //check token and expirationDate
    NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];
    if([defaults objectForKey:KToken] && [defaults objectForKey:KDate]){
        _facebook.accessToken  = [defaults objectForKey:KToken];
        _facebook.expirationDate = [defaults objectForKey:KDate];
    }
    
    //check for a valid session
    
    if(![_facebook isSessionValid]){
        //[_facebook authorize:nil delegate:self];
        self.strToken = @"true"; 
    }
    

    // Override point for customization after application launch.
   
    self.window.rootViewController = self.viewController;
    [self.window makeKeyAndVisible];
    

    
    return YES;
}

里面的,细节,和对象加载的先后顺序,决定了,facebook对象的能保存,从NSUserDefautls中获取的值。



方法二.

由于facebook对象在view里面声明的。所以,在初始化的是既是, -(void)viewDidLoad{}

    _facebook= [[Facebook alloc] initWithAppId:kAppId];
    
    //check token and expirationDate
    NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];
    if([defaults objectForKey:KToken] && [defaults objectForKey:KDate]){
        _facebook.accessToken  = [defaults objectForKey:KToken];
        _facebook.expirationDate = [defaults objectForKey:KDate];
    }
    

最后,结果也看到了,获取token和expirationDate的时候,最好还是和 _facebook = [[Facebook alloc] initWithId : kAppId] ,在一起。这样避免,空值;无法达到,最后的对象保存效果。







/////////////////////////////////////////////////////////////////分界线/////////////////////////////////////////////////


fb对token,有相同的处理,一个app对应一个token,进过login后的token,和非login状态的token参数,其变化就是在之前的一个字母,登录后的token,第一个字母边位了B****,而非login的状态下,获得的token是A****,

至于能否在登录的情况下获得graph的请求,还在测试。继续。

你可能感兴趣的:(kill,application,Graph,token,Facebook,login)