Objective c ';使用未声明的标识符';完成结果'';

Objective c ';使用未声明的标识符';完成结果'';,objective-c,xcode,push-notification,quickblox,Objective C,Xcode,Push Notification,Quickblox,当我尝试输入此代码时,Xcode会告诉我“使用未声明的标识符”已完成,结果为“”。这是Quickblox上推送通知的代码。有一段代码: - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { /// Set QuickBlox credentials (You must create application in admin

当我尝试输入此代码时,Xcode会告诉我“使用未声明的标识符”已完成,结果为“”。这是Quickblox上推送通知的代码。有一段代码:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    /// Set QuickBlox credentials (You must create application in admin.quickblox.com)
    [QBSettings setApplicationID:XX];
    [QBSettings setAuthorizationKey:@"XX"];
    [QBSettings setAuthorizationSecret:@"XX"];
    //
    // If you use Push Notifications - you have to use lines bellow when you upload your application to Apple Store or create AdHoc.
    //

    [QBSettings useProductionEnvironmentForPushNotifications:YES];

    QBASessionCreationRequest *extendedAuthRequest = [QBASessionCreationRequest request];
    extendedAuthRequest.devicePlatorm = DevicePlatformiOS;
    extendedAuthRequest.deviceUDID = [[UIDevice currentDevice] uniqueIdentifier];
    extendedAuthRequest.userLogin = @"yourUserLogin";
    extendedAuthRequest.userPassword = @"yourUserPassword";

    [QBAuth createSessionWithExtendedRequest:extendedAuthRequest delegate:self];

    // QuickBlox queries delegate
    - (void)completedWithResult:(Result *)result{
        if(result.success){

            // Create session result
            if([result isKindOfClass:QBAAuthSessionCreationResult.class]){
                // register for receive push notifications
                [QBMessages TRegisterSubscriptionWithDelegate:self];

                // Register for receive push notifications result
            }else if([result isKindOfClass:QBMRegisterSubscriptionTaskResult.class]){
                // Congrats! Now you can receive Push Notifications!
            }
        }
    }
错误在这一行:

 // QuickBlox queries delegate
        - (void)completedWithResult:(Result *)result{
            if(result.success){
它表示“使用未声明的标识符”已完成,结果为“”


拜托,有人能帮忙吗?谢谢

您正在另一个方法中实现一个方法。这在Objective-C中是不允许的。您可能只是错过了
应用程序的右括号:didFinishLaunchingWithOptions:
方法。在第二个(
completedWithResult:
)方法上方用
}
关闭它。

在Objective-C中,不能在方法内部实现方法。请确保在类内部实现方法,而不是另一个方法


如果您还没有弄明白,委派模式是Cocoa框架中一个简单但重要的部分:将your方法放入delegate类中,your代码的其他部分(本例中为QBAuth)稍后将调用它。

您可能希望从此代码示例中删除您的应用程序机密。哦,是的,谢谢!!:facepalm:对不起,我没有注意到鼓手刚才说的。在行上方添加一个
}
//QuickBlox queries delegate
…您的问题中没有包含该代码。所以实际上你没有忘记结束语
}
。正如我所说,您只是在另一个方法中实现了一个方法。将
completedWithResult:
放在
应用程序之外:didfishLaunching
。我不知道如何才能更好地解释。选择、剪切、粘贴、完成。拿起一本Objective-C书,读一读