ShareKit导致iOS应用程序崩溃?

时间:2012-06-19 15:11:55

标签: ios crash sharekit viewdidload

我只是在iTunes Connect中显示崩溃报告,所以我已将其加载到Xcode中,这对我来说是象征性的。

相关部分是:

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x00000000, 0x00000000
Crashed Thread:  0

Last Exception Backtrace:
0   CoreFoundation                  0x323e188f __exceptionPreprocess + 163
1   libobjc.A.dylib                 0x34437259 objc_exception_throw + 33
2   CoreFoundation                  0x323e1789 +[NSException raise:format:] + 1
3   CoreFoundation                  0x323e17ab +[NSException raise:format:] + 35
4   Bitrate Tester                  0x00048435 0x0001a435
5   Bitrate Tester                  0x00031473 -[FirstViewController viewDidLoad] (FirstViewController.m:27)

FirstViewController,毫不奇怪,是我的应用程序显示的第一个视图控制器,这意味着[FirstViewController viewDidLoad]基本上是我的应用程序中调用的第一个实际方法。因此,以前称之为错误的可能性不大。

现在,这就是viewDidLoad的样子:

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    DefaultSHKConfigurator *configurator = [[MySHKConfigurator alloc] init];
    [SHKConfiguration sharedInstanceWithConfigurator:configurator];
    [SHK setFavorites:[NSArray arrayWithObjects:@"SHKFacebook",@"SHKTwitter",@"SHKMail",nil] forType:SHKShareTypeText];
}

第27行

    [SHKConfiguration sharedInstanceWithConfigurator:configurator];

那么,ShareKit会导致我的应用程序崩溃吗?请注意,我无法在我的任何设备上重现该问题(我在iOS模拟器中测试过,在iOS 5.1.1上测试了我的iPhone 4,在iOS 5.1上测试了iPad 2,在iOS 5.1上测试了iPhone 3GS)。 1)。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我认为在您的应用中调用的第一个方法是applicationDidFinishLaunchingWithOptions:在您的app委托中,而不是viewDidLoad。

有时会发生您的视图被卸载(例如因为内存不足),然后再次加载。这次配置器可能会加载两次,这很糟糕。

因此解决方案可能是将ShareKit配置移至applicationDidFinishLaunchingWithOptions,如configuration wiki中所述。保证只能调用此方法一次。