2011-05-31 80 views
5

我正嘗試使用sharekit在Twitter和Facebook上發帖。嘗試使用ShareKit在Twitter上發帖時收到錯誤

我有兩個按鈕,其致電以下兩種方法:

- (IBAction) shareOnFacebook:(id)sender 
{ 
    // Create the item to share 
    NSString *someText = @"Share on Facebook."; 
    SHKItem *item = [SHKItem text:someText]; 

    // Share the item 
    [[SHK currentHelper] setRootViewController:self.navigationController]; 
    [SHKFacebook shareItem:item]; 
} 

- (IBAction) shareOnTwitter:(id)sender 
{ 
    // Create the item to share 
    NSString *someText = @"Share on Twitter."; 
    SHKItem *item = [SHKItem text:someText]; 

    //tried both methods to set navigationcontroller! 
    [[SHK currentHelper] setRootViewController:self.navigationController]; 
    [SHK setRootViewController:self.navigationController]; 

    [SHKTwitter shareItem:item]; 
} 

Facebook正在唯一的工作,當我嘗試使用Twitter,我得到以下錯誤:

2011-05-31 10:20:25.928 App[870:707] *** Assertion failure in -[SHK showViewController:], /Users/blaat/Dropbox/App/Classes/ShareKit/Core/SHK.m:112 
2011-05-31 10:20:25.975 App[870: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].' 

這很奇怪,因爲我使用Facebook的相同方法來設置NavigationViewController的一切工作... 我在SHKConfig.h中一遍又一遍地檢查了所有變量

  • 認證的OAuth
  • 應用型 「瀏覽器」
  • 回調URL中填充的在配置和dev.twitter.com
  • Consumerkey OK
  • Consumersecret OK

任何一個理念?

編輯。我啓用了對Sharekit的調試,這是結果。我仍然沒有看到問題出在哪裏。

2011-06-01 09:07:28.496 App[179:707] <0x2e9400 OAMutableURLRequest.m:(242)> OAMutableURLRequest parameters oauth_consumer_key=****************&oauth_nonce=9C826DA5-A991-4045-BA6C-96D62CF09AA0&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1306912048&oauth_version=1.0 
2011-06-01 09:07:30.109 App[179:707] <0x2e4240 SHKOAuthSharer.m:(108)> tokenRequestTicket Response Body: oauth_token=tsuRQUGI63sE7XnRyxiNgy4G03ycUG7G0KhEjhROuw&oauth_token_secret=jIsb6rqhqf11neREsIVrCnjy9i7epLhDKROmjgYJDmQ&oauth_callback_confirmed=true 
2011-06-01 09:07:30.578 App[179:707] *** Assertion failure in -[SHK showViewController:], /Users/blaat/Dropbox/App/Classes/ShareKit/Core/SHK.m:112 
2011-06-01 09:07:30.774 App[179: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].' 
*** Call stack at first throw: 
(
    0 CoreFoundation      0x33cd264f __exceptionPreprocess + 114 
    1 libobjc.A.dylib      0x34115c5d objc_exception_throw + 24 
    2 CoreFoundation      0x33cd2491 +[NSException raise:format:arguments:] + 68 
    3 Foundation       0x34be4573 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 62 
    4 App         0x0000bd5f -[SHK showViewController:] + 722 
    5 App         0x0000fe87 -[SHKOAuthSharer tokenAuthorize] + 238 
    6 App         0x0000fbb5 -[SHKOAuthSharer tokenRequestTicket:didFinishWithData:] + 396 
    7 CoreFoundation      0x33c42571 -[NSObject(NSObject) performSelector:withObject:withObject:] + 24 
    8 App         0x00015cb5 -[OAAsynchronousDataFetcher connectionDidFinishLoading:] + 208 
    9 Foundation       0x34ba02f5 -[NSURLConnection(NSURLConnectionReallyInternal) sendDidFinishLoading] + 68 
    10 Foundation       0x34ba0277 _NSURLConnectionDidFinishLoading + 78 
    11 CFNetwork       0x369ba411 _ZN19URLConnectionClient23_clientDidFinishLoadingEPNS_26ClientConnectionEventQueueE + 136 
    12 CFNetwork       0x369aef45 _ZN19URLConnectionClient26ClientConnectionEventQueue33processAllEventsAndConsumePayloadEP20XConnectionEventInfoI12XClientEvent18XClientEventParamsEl + 100 
    13 CFNetwork       0x369af0cd _ZN19URLConnectionClient26ClientConnectionEventQueue33processAllEventsAndConsumePayloadEP20XConnectionEventInfoI12XClientEvent18XClientEventParamsEl + 492 
    14 CFNetwork       0x369aee37 _ZN19URLConnectionClient13processEventsEv + 70 
    15 CFNetwork       0x369aede9 _ZN13URLConnection24multiplexerClientPerformEP18RunLoopMultiplexer + 36 
    16 CFNetwork       0x369aed5b _ZN17MultiplexerSource7performEv + 126 
    17 CFNetwork       0x369aecd9 _ZN17MultiplexerSource8_performEPv + 8 
    18 CoreFoundation      0x33ca9a79 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 12 
    19 CoreFoundation      0x33cab75f __CFRunLoopDoSources0 + 382 
    20 CoreFoundation      0x33cac4eb __CFRunLoopRun + 230 
    21 CoreFoundation      0x33c3cec3 CFRunLoopRunSpecific + 230 
    22 CoreFoundation      0x33c3cdcb CFRunLoopRunInMode + 58 
    23 GraphicsServices     0x347a541f GSEventRunModal + 114 
    24 GraphicsServices     0x347a54cb GSEventRun + 62 
    25 UIKit        0x33789d69 -[UIApplication _run] + 404 
    26 UIKit        0x33787807 UIApplicationMain + 670 
    27 App         0x000023af main + 70 
    28 App         0x00002364 start + 40 
) 

編輯:我得到了答案

[SHK setRootViewController:self.navigationController]; 

需求是:

[SHK setRootViewController:self]; 

的問題是,它需要一個UIViewController,當我傳遞一個UINavigationViewController

回答

3

我們也使用ShareKit。我們還沒有穿過這個,但根據docs online,ShareKit將嘗試使用導航控制器堆棧來查找您的根視圖控制器,然後從那裏彈出一個模式視圖控制器。它在找不到它時拋出這個錯誤。

[SHK setRootViewController:myViewController]; 
+0

我這樣做只是我傳遞了一個UINavigationViewController而不是UIViewController – Slaapyhoofd 2011-06-07 09:23:54

2

編輯:

您可以通過使用以下調用手動設置根視圖控制器糾正它,我得到了答案

[SHK setRootViewController:self.navigationController]; 

需求是:

[SHK setRootViewController:self]; 

問題是它需要一個UIViewController,而我傳遞一個UINavigationViewController ...

相關問題