0

我正在使用新的 FB IOS SDK 和应用程序崩溃并得到以下错误

-FBCacheIndex _updateEntryInDatabaseForKey:entry:, /Users/chrisp/src/ios-sdk/src/FBCacheIndex.m 中的断言失败由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“” *第一次抛出调用堆栈:(0x334072a3 0x3b0a197f 0x3340715d 0x33cdcb13 0x10b3b1 0x10b635 0x10a7bf 0x3b4b911f 0x3b4b899b 0x3b4b8895 0x3b4c7215 0x3b4c73b9 0x3b4eda11 0x3b4ed8a4)

我制作了谷歌并在其他链接器标志中找到了像 -lsqlite3.0 这样的解决方案,并添加了 -lsqlite3 框架,缺少 FBsession。我已经完成了所有工作,但我仍然遇到同样的问题。

我的代码如下:

在 NSObject 类型的 FBClass.m 中

-(void) getFriendListForInvitation
 {

@ try {

    if (self.friendPickerController == nil) {
        // Create friend picker, and get data loaded into it.
        self.friendPickerController = [[FBFriendPickerViewController alloc] init];

        self.friendPickerController.title = @"Invite Friends";
        self.friendPickerController.delegate = self;
        [self.friendPickerController clearSelection];
        [self.friendPickerController loadData];
        self.friendPickerController.itemPicturesEnabled = TRUE;

    }
    else{
        [self.friendPickerController clearSelection];
        [self.friendPickerController updateView];
    }
    self.friendPickerController.allowsMultipleSelection = FALSE;


    // iOS 5.0+ apps should use [UIViewController presentViewController:animated:completion:]
    // rather than this deprecated method, but we want our samples to run on iOS 4.x as well.
    if([[[UIDevice currentDevice] systemVersion] intValue] >= 5.0)
        [[[appdelegate.navigationController viewControllers] lastObject] presentViewController:self.friendPickerController  animated:TRUE completion:nil];
    else
        [[[appdelegate.navigationController viewControllers] lastObject] presentModalViewController:self.friendPickerController animated:YES];

}
@catch (NSException *exception) {
    NSLog(@"%@",[exception description]);
}

}

请帮我解决这个问题......

谢谢

4

1 回答 1

0

你设法解决了这个问题吗?我遇到同样的问题。
我确定此异常是由cache.dbfacebook 正在寻址的目录中缺少文件引起的。您可以在模拟器的帮助下进行检查。缺少的模拟器文件的目录是:

/Users/<user name>/Library/Application Support/iPhone Simulator/6.1/Applications/<app id>/Library/Caches/DataDiskCache

但是我不知道为什么文件丢失了。

编辑:
我想出的唯一方法是使用简单的两行代码从应用程序中清除会话数据:

FBSession.activeSession = nil;
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"FBAccessTokenInformationKey"];

不幸的是,这个解决方案从未真正关闭会话,但至少它提供了应用程序的正确工作流程。

于 2013-04-10T13:39:38.900 回答