【问题标题】:App crashes after authentication Twitter using Sharekit使用 Sharekit 对 Twitter 进行身份验证后应用程序崩溃
【发布时间】:2011-09-21 01:10:05
【问题描述】:

在我们的应用程序中,我们使用 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。为 Twitter 使用 OAuth

编辑:回答 感谢 Eimantas

我必须做两件事来解决这个问题:

  1. 定义[SHK setRootViewController:(主 rootviewcontroller)] 在应用程序中 委托
  2. 使用来自 github 的这个 fork https://github.com/rs/ShareKit/commit/2121cbc1a2d935b36921ae226449b2acd6f10c06#diff-0

【问题讨论】:

  • AFAIK - 这是一个已知问题,可以在 google 上找到。
  • 你能提供链接吗?因为我搜索并找不到解决方案。这就是我在这里发布问题的原因......
  • getsharekit.com/support -- 有一个带有“缺少根视图控制器”的标题。尝试在应用委托中设置根视图控制器(将初始视图控制器添加到您的窗口时)。
  • 另外,github.com/ideashower/ShareKit/pull/129 似乎提供了有关该问题的一些更新。我认为您必须克隆另一个 ShareKit 存储库。)
  • @Eimantas Thx 成功了!我会更新答案!

标签: iphone cocoa-touch twitter uiviewcontroller sharekit


【解决方案1】:

感谢艾曼塔斯

我必须做两件事来解决这个问题:

  1. 定义[SHK setRootViewController:(主 rootviewcontroller)] 在应用程序中 委托
  2. 使用来自 github 的这个 fork https://github.com/rs/ShareKit/commit/2121cbc1a2d935b36921ae226449b2acd6f10c06#diff-0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-03
    • 1970-01-01
    • 2011-08-15
    • 1970-01-01
    • 2017-05-05
    • 2018-07-25
    • 2020-04-24
    • 1970-01-01
    相关资源
    最近更新 更多