我正在开发一个我集成了天空驱动框架的应用程序。但是当我尝试使用以下命令登录我的应用程序时崩溃:
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]]); }
答案 0 :(得分:3)
错误消息基本上表示您有一个试图加载NIB文件的ViewController,但它无法找到它,因为它既没有包含在资源中,也没有与预期不同的名称。
完整的错误消息应该包含文件的名称 - 因为您没有发布它我无法确定,但LiveAuthDialog_iPad
或LiveAuthDialog_iPhone
可能在这里丢失,这些是我发现LiveSDK使用的唯一.xib文件。
删除对.xib文件的引用并将其重新添加到项目中(如果存在),否则将其添加到项目中。然后再次清理并构建。
更新(请参阅评论):
如果使用编译的库版本('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文件