iPhone App中的Skydrive登录崩溃

时间:2014-07-01 13:19:02

标签: ios iphone objective-c onedrive

我正在开发一个我集成了天空驱动框架的应用程序。但是当我尝试使用以下命令登录我的应用程序时崩溃:

uncaught exception 'NSInternalInconsistencyException

原因:

Could not load NIB in bundle: 'NSBundle </var/mobile/Applications/

使用“LiveSDK / Library”它工作正常,但该库不适用于ARC。 我做错了什么?

这是我的代码:

(void)signInMethod { 
self.liveClient =
[[LiveConnectClient alloc] initWithClientId:APP_CLIENT_ID 
                                                     delegate:self 
                                                    userState:@"initialize"]; 
}

-(void)authCompleted:(LiveConnectSessionStatus) status 
          session:(LiveConnectSession *) session 
        userState:(id) userState { if ([userState isEqual:@"initialize"]) {
    [self.liveClient login:self 
                    scopes:[NSArray arrayWithObjects:@"wl.signin", nil] 
                  delegate:self 
                 userState:@"signin"];

} if ([userState isEqual:@"signin"]) {
    if (session != nil)
    {
        NSLog(@"signed in");      
    }
     } }

-(void)authFailed:(NSError *) error 
     userState:(id)userState { NSLog(@"%@",[NSString stringWithFormat:@"Error: %@", [error localizedDescription]]);  }

2 个答案:

答案 0 :(得分:3)

错误消息基本上表示您有一个试图加载NIB文件的ViewController,但它无法找到它,因为它既没有包含在资源中,也没有与预期不同的名称。

完整的错误消息应该包含文件的名称 - 因为您没有发布它我无法确定,但LiveAuthDialog_iPadLiveAuthDialog_iPhone可能在这里丢失,这些是我发现LiveSDK使用的唯一.xib文件。

删除对.xib文件的引用并将其重新添加到项目中(如果存在),否则将其添加到项目中。然后再次清理并构建。

(另见:Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle

更新(请参阅评论):

如果使用编译的库版本('LiveSDK.framework')(而不是导入LiveSDK源),框架预计将包含在应用程序包的Resources文件夹中,将其添加到主机项目的Copy Bundle Resources构建阶段,或将其添加到目标设置为Copy Files Build Phase的{​​{1}}。

放置很重要b / c LiveSDK的-[LiveAuthRequest authorize]方法将主要尝试从框架包(使用-[LiveAuthHelper getSDKBundle])加载身份验证对话框的NIB文件,期待框架在主要资源包中找到:

Resources

答案 1 :(得分:0)

您需要在ViewDidLoad中注册您的NIB文件。如果它的tableViewCell然后使用下面的代码 [self.tableView registerNib:withCellIndentifier];

您正在尝试加载View nib YourViewController * myview = [UIViewController alloc] initWithNib:];

如果nib文件本身丢失,则转到Target-&gt;构建阶段 - &gt;复制捆绑包资源并添加丢失的nib文件