从ios应用程序注册QuickBlox中的新用户时终止应用程序

虽然来自ios应用程序的 signing up a new userin QuickBlox具有登录和密码凭据,但应用程序崩溃了,NSLog控制台显示如下错误,

Terminating app due to uncaught exception ‘BaseServiceException’,
reason: ‘You have missed the authorization call. Please insert
following code inside your application [QBRequest
createSessionWithSuccessBlock:errorBlock:]; Before any other code,
that uses our service,but after setup credentials.

First throw call stack:(
0   CoreFoundation                      0x038365e4 __exceptionPreprocess + 180
1   libobjc.A.dylib                     0x02ca48b6 objc_exception_throw + 44
2   VideoChat                           0x00028e2f -[QBHTTPConnection generateRequestOperation:forPath:usingMethod:] + 1231
3   VideoChat                           0x00028092 -[QBConnection executeRequest:forPath:usingMethod:] + 162
4   VideoChat                           0x0001b049 +[QBRequest(QBAuth) signUp:successBlock:errorBlock:] + 825
5   VideoChat                           0x0000457d -[AppDelegate application:didFinishLaunchingWithOptions:] + 2077
6   UIKit                               0x017ff355 -[UIApplication _handleDelegateCallbacksWithOptions:isSuspended:restoreState:] + 309
7   UIKit                               0x017ffb95 -[UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 1536
8   UIKit                               0x018043a8 -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 824
9   UIKit                               0x0181887c -[UIApplication handleEvent:withNewEvent:] + 3447
10  UIKit                               0x01818de9 -[UIApplication sendEvent:] + 85
11  UIKit                               0x01806025 _UIApplicationHandleEvent + 736
12  GraphicsServices                    0x03d6b2f6 _PurpleEventCallback + 776
13  GraphicsServices                    0x03d6ae01 PurpleEventCallback + 46
14  CoreFoundation                      0x037b1d65 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 53
15  CoreFoundation                      0x037b1a9b __CFRunLoopDoSource1 + 523
16  CoreFoundation                      0x037dc77c __CFRunLoopRun + 2156
17  CoreFoundation                      0x037dbac3 CFRunLoopRunSpecific + 467
18  CoreFoundation                      0x037db8db CFRunLoopRunInMode + 123
19  UIKit                               0x01803add -[UIApplication _run] + 840
20  UIKit                               0x01805d3b UIApplicationMain + 1225
21  VideoChat                           0x00004cbd main + 141
22  libdyld.dylib                       0x033dc725 start + 0)

我正在使用以下代码创建一个新用户,

[QBRequest createSessionWithSuccessBlock:^(QBResponse *response,QBASession *session) {
    // session created
} errorBlock:^(QBResponse *response) {
    // handle errors
    NSLog(@"%@",response.error);
}];

QBUUser *user = [QBUUser user];
user.password = @"azhhdsf";
user.login = @"dsfgsgf";

// Registration/sign up of User
[QBRequest signUp:user successBlock:^(QBResponse *response,QBUUser *user) {
    // Sign up was successful
} errorBlock:^(QBResponse *response) {
    // Handle error here
    NSLog(@"error while signing up with QB");
}];

我看到了答案here on SO,但它抛出了一个错误,该委托:self已被弃用,需要使用上面的方法signUp:successBlock:.

有没有人面对这个问题?如何解决这个问题?任何建议将不胜感激.

解决方法

所有这些请求都是异步的,您不能以这种方式使用它.

正确的方法是等到创建会话然后注册用户:

[QBRequest createSessionWithSuccessBlock:^(QBResponse *response,QBASession *session) {
    // session created

    QBUUser *user = [QBUUser user];
    user.password = @"azhhdsf";
    user.login = @"dsfgsgf";

    // Registration/sign up of User
    [QBRequest signUp:user successBlock:^(QBResponse *response,QBUUser *user) {
        // Sign up was successful
    } errorBlock:^(QBResponse *response) {
        // Handle error here
        NSLog(@"error while signing up with QB");
    }];
} errorBlock:^(QBResponse *response) {
    // handle errors
    NSLog(@"%@",response.error);
}];

以上是来客网为你收集整理的从ios应用程序注册QuickBlox中的新用户时终止应用程序全部内容,希望文章能够帮你解决从ios应用程序注册QuickBlox中的新用户时终止应用程序所遇到的程序开发问题。

如果觉得来客网网站内容还不错,欢迎将来客网网站推荐给程序员好友。