Facebook SDK 3.5.1 SQLite磁盘I / O错误

时间:2013-06-05 07:40:02

标签: ios facebook sqlite assertion

我在使用Facebook SDK 3.5.1时遇到了一些问题

我成功获得了Facebook访问令牌和用户信息。但是当我尝试使用FBProfilePictureView获取用户(我/朋友)个人资料图像时,我的应用程序总是崩溃。

提供任何帮助的线索。

顺便说一句,抱歉英语不好:(

感谢。

使用SDK登录:

NSArray *permissions = @[@"publish_stream", @"publish_actions"];

FBSessionTokenCachingStrategy *tokenCache = [[FBSessionTokenCachingStrategy alloc] initWithUserDefaultTokenInformationKeyName:kFacebookTokenCache];
[FBSession setActiveSession:[[FBSession alloc] initWithAppID:FB_APP_ID permissions:permissions defaultAudience:FBSessionDefaultAudienceEveryone urlSchemeSuffix:nil tokenCacheStrategy:tokenCache]];
[FBSession openActiveSessionWithPublishPermissions:permissions defaultAudience:FBSessionDefaultAudienceFriends allowLoginUI:YES completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
// some codes here.
}];

当获得FB令牌成功时,我想制作自定义Facebook好友列表视图控制器。 所以我试着这样:

[[FBRequest requestForGraphPath:@"/me/friends"] startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
            if (error) {

            } else {
                FBGraphObject *objects = result;

                NSLog(@"%@", result);

                NSArray *keys = [objects allKeys];

                for (NSString *key in keys) {
                    if ([key isEqualToString:@"data"]) {
                        self.dataArray = [objects objectForKey:key];
                    } else if ([key isEqualToString:@"paging"]) {
                        self.nextPage = [[objects objectForKey:@"paging"] objectForKey:@"next"];
                    }
                }
            }
            [self.tableView reloadData];
            [self hideLoading];
        }];

然后tableView显示我的朋友:

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
... codes here

NSDictionary *user = [self.dataArray objectAtIndex:indexPath.row];

cell.friendName.text = [user objectForKey:@"name"];
cell.profileView.profileID = [user objectForKey:@"id"];   // <<<-- !!!

... returning cell
}

然后BOOM !!!

如果我删除一行cell.profileView.profileID = [user objectForKey:@"id"];我的程序都可以。没有崩溃。但是...... ** SIGH **

这是结果。

  

FBCacheIndex:期待结果101,实际10 2013-06-05 16:15:59.277

     

ZPad [14403:a007] FBCacheIndex:SQLite错误:磁盘I / O错误2013-06-05 16:15:59.278

     

ZPad [14403:a007] * 断言失败-FBCacheIndex _removeEntryFromDatabaseForKey:,/ Usrs / facebookSDK / src / FBCacheIndex.m:562 2013-06-05 16:15:59.279

     

ZPad [14403:a007] * 由于未捕获的异常NSInternalInconsistencyException而终止应用,原因:''

     

* 第一次抛出调用堆栈:(0x312602a3 0x390d497f 0x3126015d 0x31b35b13 0x280fb1 0x27db95 0x394ec11f 0x394efecf 0x394efdc1 0x394f091d 0x394f0ac1 0x39520a11 0x395208a4)libc ++ abi.dylib:terminate调用抛出异常

1 个答案:

答案 0 :(得分:0)

我遇到了这个问题,这是因为我的应用程序出于测试目的,正在加载加载了profilepictureview的视图控制器时清除缓存目录。

当我禁用它时,一切都很完美!