2013-03-28 108 views
-1

當我嘗試輸入此代碼時,Xcode說我'使用未聲明的標識符'completedWithResult''。這是在Quickblox上推送通知的代碼。有一段代碼:'使用未聲明的標識符'completedWithResult''

- (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){ 

它說,「使用未聲明的標識符的「completedWithResult」

請人幫忙嗎?謝謝!

+3

您可能想從此代碼示例中刪除您的應用程序密鑰。 –

+0

哦,是的,謝謝! :facepalm: –

回答

4

您正在實施方法的其他方法。這在Objective-C中是不允許的。您可能只是錯過了application:didFinishLaunchingWithOptions:方法的右括號。在第二個(completedWithResult:)方法之上用}關閉它。

+0

在'//'QuickBlox查詢委託人的上方添加'}'... – DrummerB

+0

您沒有在您的問題中包含該代碼。所以其實你並沒有忘記關閉'}'。正如我所說的,您只是在其他方法中實施了一種方法。把'completedWithResult:'放在'application:didFinishLaunching'之外。 – DrummerB

+0

我不知道我怎麼能更好地解釋。選擇,剪切,粘貼,完成。拿起一本Objective-C書並閱讀它 – DrummerB

2

您無法在Objective-C中的方法中實現方法。確保你在類中實現了方法,而不是另一種方法。代碼模式是Cocoa框架的一個簡單而又重要的部分:將你的方法放在委託類和你的代碼的其他組件中(QBAuth在這裏案件)將在稍後調用。

+0

對不起,我沒有注意到DrummerB剛纔說的那樣。 –