使用Sharekit对Twitter进行身份验证后应用程序崩溃

时间:2011-06-23 08:55:22

标签: iphone cocoa-touch twitter uiviewcontroller sharekit

在我们的应用程序中,我们使用ShareKit在Facebook和Twitter上发布内容。 Facebook运作完美,只有Twitter存在一些问题。

您第一次使用Twitter发送内容时,需要对应用进行身份验证。 这个过程也可以正常工作,它应该返回到屏幕上发布在Twitter上。 但此时应用程序崩溃,因为它再也找不到UIViewController了... 请参阅以下错误:

2011-06-22 17:18:29.355 asdf[189:707] *** Assertion failure in -[SHK showViewController:], /Users/nvt/Documents/asdf/Classes/Core/SHK.m:117
2011-06-22 17:18:29.460 asdf[189:707] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'ShareKit: Could not find a root view controller.  You can assign one manually by calling [[SHK currentHelper] setRootViewController:YOURROOTVIEWCONTROLLER].'

但我确实设置了UIViewController:

- (IBAction) shareAll:(id)sender
{
    [SHK setRootViewController:self];

    SHKItem *item = [SHKItem text:@"Deel app test"];

    [SHK setFavorites:[NSArray arrayWithObjects:@"SHKTwitter", @"SHKFacebook",nil] forType:SHKShareTypeURL];
    [SHK setFavorites:[NSArray arrayWithObjects:@"SHKTwitter", @"SHKFacebook",nil] forType:SHKShareTypeText];   

    SHKActionSheet *actionSheet = [SHKActionSheet actionSheetForItem:item];
    actionSheet.title = @"Deel";

    [actionSheet showInView:self.view];
}

似乎不知何故,Sharekit失去了UIViewController上的句柄。 我尝试通过添加:

来修复它
[SHK setRootViewController:self];

到ViewDidLoad和ViewWillAppear方法,但这不起作用。 遇到同样问题或有想法解决这个问题的人? 虽然应用程序崩溃了身份验证工作,因为下次你想在Twitter上发布一些东西它确实有效。 所以它只在第一次认证期间崩溃一次......

PS。将OAuth用于Twitter

编辑:回答 感谢Eimantas

我必须做两件事才能解决问题:

  1. 定义[SHK setRootViewController :(主要的 rootviewcontroller)]在应用程序中 代表
  2. 从github使用此fork https://github.com/rs/ShareKit/commit/2121cbc1a2d935b36921ae226449b2acd6f10c06#diff-0

1 个答案:

答案 0 :(得分:1)

向Eimantas致谢

我必须做两件事才能解决问题:

  1. 定义[SHK setRootViewController :(主要的 rootviewcontroller)]在应用程序中 代表
  2. 从github使用此fork https://github.com/rs/ShareKit/commit/2121cbc1a2d935b36921ae226449b2acd6f10c06#diff-0