Как опубликовать что-то на Facebook из DetailView? - PullRequest
0 голосов
/ 01 марта 2011

Я работаю с публикацией истории на Facebook в моем приложении. Это мой первый раз, когда я работаю с приложением iphone и Facebook вместе. Я прочитал документацию и теперь могу получить разрешение на публикацию. но есть проблема. у меня есть этот код в AppDelegate.m:

  - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
[self.window addSubview:navigationController.view];
[self.window makeKeyAndVisible];
  facebook = [[Facebook alloc] initWithAppId:@"app_id"];

NSArray* permissions =  [[NSArray arrayWithObjects:
                          @"publish_stream", nil] retain];

[facebook authorize:permissions delegate:self];
    return YES;
  }

   - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {

return [facebook handleOpenURL:url]; 
  } 

теперь у меня есть кнопка в DetailView, которая должна публиковать историю на стене пользователя. я написал этот код там:

    SBJSON *jsonWriter = [[SBJSON new] autorelease];

NSDictionary* attachment = [NSDictionary dictionaryWithObjectsAndKeys:
                            [sTitle stringByReplacingOccurrencesOfString:@"\"" withString:@"\\\""], @"name",
                            [sSummary stringByReplacingOccurrencesOfString:@"\"" withString:@"\\\""], @"description",
                            [sLink stringByReplacingOccurrencesOfString:@"\"" withString:@"\\\""], @"href", nil];
NSString *attachmentStr = [jsonWriter stringWithObject:attachment];
NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                               @"XXX", @"api_key",
                               @"Share on Facebook",  @"user_message_prompt",
                               attachmentStr, @"attachment",
                               nil];

[facebook dialog:@"stream.publish" andParams:params andDelegate:self];

и выдает ошибку facebook, необъявленную в последней строке. Как я могу удалить эту ошибку. Должен ли я инициировать этот Facebook в DetailViewController или я могу использовать уже объявленный Facebook, который находится в AppDelegate.m. если да как? * 1007 спасибо *

1 Ответ

2 голосов
/ 01 марта 2011

У вас должен быть указатель на переменную Facebook делегата приложения

<code>MyProjectAppDelegate *appDelegate = (MyProjectAppDelegate *)[[UIApplication sharedApplication] delegate];
facebook = appDelegate.facebook;
Надеюсь, это помогло вам.
...