2012-06-20 25 views
7

Tôi đang chạy Xcode 4.3.3 và đang nhắm mục tiêu iOS 5.1. Tôi đang cố gắng đưa chức năng của Game Center vào trò chơi.Hành vi GameKit kỳ lạ. Bất cứ ai khác nhìn thấy điều này?

Khi chứng thực GKLocalPlayer người dùng sẽ được trình bày với Đăng nhập vào Game Center xem cảnh báo hoặc chứng minh được đăng nhập. Cho đến nay đây là tất cả tốt, nhưng nếu người dùng nhấn Tạo tài khoản mới nút sau đó bất kỳ quan điểm mở modal đang di chuyển phía sau bộ điều khiển xem gốc và các lỗi sau đây được nhổ từ giao diện điều khiển:

cuộc gọi Unbalanced để bắt đầu/chuyển tiếp xuất hiện cuối cho < GKModalRootViewController: nhớ địa chỉ >.

Tôi đã thử di chuyển mã xác thực GKLocalPlayer giữa đại biểu ứng dụng và trình điều khiển chế độ xem gốc. Tôi cũng đã thử triển khai xác thực trong một dự án mới, trống. Tôi đã thử nó có và không có Storyboards và ARC. Trong tất cả các trường hợp này, các kết quả giống nhau: các mod thức ẩn đằng sau trình điều khiển chế độ xem gốc và lỗi được đưa ra.

Dưới đây là phương pháp xác thực GKLocalPlayer Tôi gọi từ đại biểu ứng dụng của tôi ứng dụng: didFinishLaunchingWithOptions: phương pháp:

- (void)authenticateLocalPlayer 
{ 
    GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer]; 
    [localPlayer authenticateWithCompletionHandler:^(NSError *error) { 
     if (localPlayer.isAuthenticated) { 
      // Perform additional tasks for the authenticated player. 
     } else { 
      // Disable Game Center features. 
     } 
     if (error) { 
      // Handle error. 
     } 
    }]; 
} 

Here là một ảnh chụp màn hình của nó. Trong ảnh này, bộ điều khiển xem gốc có nền với giá trị alpha 50%. Phương thức này đã được đẩy phía sau trình điều khiển chế độ xem gốc bằng lỗi này.

This stackoverflow question chứa tham chiếu duy nhất cho lỗi này (liên quan đến GKModalRootViewController) Tôi có thể tìm thấy và không phù hợp vì (a.) Tôi không sử dụng cocos2d. (b.) Nó xảy ra có hay không tôi thực hiện một segue, và tôi không chạm vào viewWillAppear: hoặc viewDidAppear :. (c.) Không có câu trả lời chấp nhận được.

This questionthis one dường như liên quan đến cùng một vấn đề (với phân cấp chế độ xem đang bị hủy) nhưng chưa được trả lời và không đề cập đến thông báo lỗi của bảng điều khiển.

Điều này có xảy ra với bất kỳ ai khác không? còn ý tưởng nào về những gì có thể gây ra điều này?

CẬP NHẬT 1: Tôi đã đi quá xa để đặt mã xác thực vào IBAction được kết nối với một nút trong chế độ xem để tránh bất kỳ xung đột khởi tạo nào. Nó không giúp được gì.

CẬP NHẬT 2: Tôi đã thử di chuyển mã xác thực vào hàng đợi nền GCD. kết quả của anh cũng giống nhau.

Here là dự án thử nghiệm (mà GameCenter đã sẵn sàng với ID nhóm ứng dụng của tôi đã được nhập).

Để kiểm tra:

  1. Truy xuất khỏi Game Center trên thử nghiệm thiết bị/mô phỏng (nếu bạn là đăng nhập).
  2. Xây dựng và chạy ứng dụng.
  3. Nhấn nút thông tin.
  4. Bấm Xác thực.
  5. Khi thông báo Đăng nhập vào Trung tâm trò chơi xuất hiện, hãy nhấn Tạo mới Tài khoản.
  6. Bấm Hủy.
  7. Thông báo “Cuộc gọi không cân bằng ...” có xuất hiện trong bảng điều khiển không? Chế độ xem phương thức (với nút Xác thực) có biến mất không?
  8. Nhấn nút thông tin.
  9. Màn hình phương thức lại có phải không?
+1

Bạn vẫn gặp sự cố này? – NathanChristie

+0

Sự cố vẫn tồn tại trong iOS 5.1.1, tuy nhiên iOS 6 đã giải quyết được sự cố. – Endersstocker

Trả lời

2

Lỗi này xuất hiện trong danh sách "lỗi Apple cố định trong 6.0". Tôi hiểu rằng bạn sẽ thích một cách giải quyết khác, nhưng khi các API mà bạn phụ thuộc vào đó là lỗi, thì cơ hội đó rất mỏng.

Tuy nhiên, bạn có thể vui mừng rằng người dùng 5.x đang dần chết dần.

Chúc bạn may mắn với ứng dụng của mình.

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