2016-04-08 26 views
0

giriş yaptığında ben kullanıcı daha önce Facebook'a giriş yapmış olduğundan, bir fotoğraf paylaşmak için istek belirsizlik içinde kaybolur bu mantığıFotoğraf paylaş değil, kullanıcının önceden Facebook

if ([[FBSDKAccessToken currentAccessToken] hasGranted:@"publish_actions"]) { 
    NSLog(@"has granted!"); 
    [self sharePhotoWithFBSDK:title andImage:image]; //for logged users 
} else { 
    FBSDKLoginManager *loginManager = [[FBSDKLoginManager alloc] init]; 
    [loginManager logInWithPublishPermissions:@[@"publish_actions"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) { 
    NSLog(@"response logInWithPublishPermissions!!! %@",error); 
     if (!error) { 
      [self sharePhotoWithFBSDK:title andImage:image]; //Non logged users 
     } 
    }]; 
} 

- (void)sharePhotoWithFBSDK:(NSString *)title andImage:(UIImage *)image 
{ 
    FBSDKSharePhoto *sharePhoto = [[FBSDKSharePhoto alloc] init]; 
    sharePhoto.caption = title; 
    sharePhoto.image = image; 

    FBSDKSharePhotoContent *content = [[FBSDKSharePhotoContent alloc] init]; 
    content.photos = @[sharePhoto]; 

    [FBSDKShareAPI shareWithContent:content delegate:self]; 
} 

var çalışır. kütüphane Girme Konunun bu fonksiyon _sharePhotoContent y doğru bu hat FBSDKGraphRequestHandler completionHandler =^(FBSDKGraphRequestConnection * connection, id result, NSError * error) {

i Bu durumda neden olabilecek makul bir şey düşünemiyorum ölür girer gerçekleşmiştir.

Sadece oturum açmadan bir kullanıcıyla aynı şeyi yapmaya çalıştığımda (bunun için) mükemmel çalıştığını biliyorum.

cevap

0

Sorun bulundu.

ben ana iş parçacığı çağıran gerek, Yani

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND,0), ^{ 

}); 

içine payı mantığı çağırıyordu

dispatch_async(dispatch_get_main_queue(), ^{ 
    [self sharePhotoWithFBSDK:title andImage:image]; 
});