在我们的应用程序中,我们使用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
我必须做两件事才能解决问题:
答案 0 :(得分:1)
向Eimantas致谢
我必须做两件事才能解决问题: