2013-01-20 36 views
7

Tôi đang làm việc trên trò chơi đang sử dụng Trung tâm trò chơi và tôi nhận được cảnh báo tiếp theo;authenticateWithCompletionHandler: không được dùng nữa: lần đầu tiên không được chấp nhận trong iOS 6.0

... 'authenticateWithCompletionHandler:' bị phản đối: thứ nhất tán thành trong iOS 6.0

Ok, tôi đã tìm kiếm và phát hiện ra rằng có mã mới cho xác thực người dùng địa phương vì vậy tôi thay

mã cũ :

- (void)authenticateLocalUser { 

    if (!gameCenterAvailable) return; 

    NSLog(@"Authenticating local user..."); 
    if ([GKLocalPlayer localPlayer].authenticated == NO) { 
     [[GKLocalPlayer localPlayer] authenticateWithCompletionHandler:nil]; 
    } else { 
     NSLog(@"Already authenticated!"); 
    } 
} 

với mới:

- (void)authenticateLocalUser { 

    if (!gameCenterAvailable) return; 

    NSLog(@"Authenticating local user..."); 

    if ([GKLocalPlayer localPlayer].authenticated == NO) { 

     GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer]; 
     [localPlayer setAuthenticateHandler:(^(UIViewController* viewcontroller, NSError *error) { 
     //[localPlayer authenticateWithCompletionHandler:^(NSError *error) { OLD CODE! 
      if(localPlayer.isAuthenticated) { 
       //do some stuff 
      }else { 
       // not logged in 
      } 
     })]; 
    } else { 
     NSLog(@"Already authenticated!"); 
    } 
} 

và mọi thứ đều ổn, ngoại trừ một điều. Nếu người dùng chưa đăng nhập thì không có biểu mẫu đăng nhập của Trung tâm trò chơi. Với mã cũ, nó sẽ hiển thị biểu mẫu đăng nhập Game Center nếu người dùng chưa đăng nhập.

có mã nào khác mà tôi phải đặt vào hoặc cái gì khác không?

thông tin thêm: - chế độ phong cảnh - triển khai mục tiêu: 6.0

Trả lời

10

Vâng, bạn phải tự trình bày các mẫu đăng nhập với iOS6, điều này mang đến cho bạn kiểm soát nhiều hơn khi giới thiệu màn hình. Hãy thử cái này

localPlayer.authenticateHandler = ^(UIViewController *viewController,NSError *error) { 
if (localPlayer.authenticated) { 
//already authenticated 
} else if(viewController) { 
[self presentViewController:viewController];//present the login form 
} else { 
//problem with authentication,probably bc the user doesn't use Game Center 
} 
}; 
+0

Tôi nhận được lỗi này: Cảnh báo: Cố gắng trình bày CroiOS

+0

Thông tin bổ sung: - chế độ ngang - mục tiêu triển khai: 6.0 – CroiOS

+0

mã xác thực được gọi ở đâu? –

Các vấn đề liên quan