在iOS 26上,GKGameCenterControllerDelegate的替代是什么?

移动开发 2026-07-09

在展示排行榜时,我提供gameCenterDelegate:https://developer.apple.com/documentation/gamekit/gkgamecenterviewcontroller/gamecenterdelegate

weak var gameCenterDelegate: (any GKGameCenterControllerDelegate)? { get set }

此属性未被弃用。但是,类型本身已被弃用:https://developer.apple.com/documentation/gamekit/gkgamecentercontrollerdelegate

我想知道替代方案是什么?还能为这个属性设置什么?

解决方案

苹果提供了一种展示Game Center的新方式——GKAccessPoint。

https://developer.apple.com/documentation/gamekit/gkaccesspoint

GKAccess Point的苹果官方文档。

https://developer.apple.com/documentation/gamekit/adding-an-access-point-to-your-game

这与您把它直接呈现给玩家的方式不同:玩家需要点击自己头像上的按钮来进入Game Center。

这是来自苹果指南的一段简单代码,做了一些修改……

    private var accessPointObservation: NSKeyValueObservation?
    private func configureAccessPoint() {
        GKAccessPoint.shared.isActive = true
        GKAccessPoint.shared.location = .topLeading
        GKAccessPoint.shared.parentWindow = view.window

        // Observe when the access point displays the dashboard.
        accessPointObservation = GKAccessPoint.shared.observe(
                   \.isPresentingGameCenter
            ) { [weak self] _,_ in
            guard let skView = self?.view as? SKView else { return }
            skView.isPaused = accessPoint.isPresentingGameCenter
        }
    }

cleanup;

    deinit {
        accessPointObservation?.invalidate()
    }
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章