由于缺少入口点,场景无法访问
Posted
技术标签:
【中文标题】由于缺少入口点,场景无法访问【英文标题】:Scene is unreachable due to lack of entry points 【发布时间】:2015-07-16 17:07:52 【问题描述】:我有一个游戏,如果你击中敌人,你会进入游戏结束屏幕。我在 main.storyboard 中添加了一个视图控制器并创建了 GameOver 类。但是,它说我需要一个入口点,当我加载应用程序时,它只是一个空白屏幕。问题是,我真的不需要入口点,因为当敌人与玩家发生碰撞时,我正在代码中切换场景。不需要按钮“入口点”。如何解决这个问题?
这是与敌人碰撞的代码:
func CollisionWithEnemy(Enemy: SKShapeNode, Player: SKSpriteNode)
//Highscore
var ScoreDefault = NSUserDefaults.standardUserDefaults()
ScoreDefault.setValue(Score, forKey: "Score")
ScoreDefault.synchronize()
if (Score > Highscore)
var HighscoreDefault = NSUserDefaults.standardUserDefaults()
HighscoreDefault.setValue(Score, forKey: "Highscore")
var gameOver:SKScene = GameOver(size: self.size)
ScoreLabel.removeFromSuperview()
Enemy.removeFromParent()
Player.removeFromParent()
self.view?.presentScene(gameOver, transition: transition)
【问题讨论】:
你应该奖励其中一个答案 - Sumit 帮助了我。 【参考方案1】:为您的故事板 ID 设置文本
【讨论】:
这可以是我想要的任何东西吗? 是的,尤其是当你在没有 segue 的情况下推送/呈现代码时设置要使用的故事板 ID 这仅在我清除派生数据并重新启动 XCode 后对我有效。【参考方案2】:您需要将其中一个 ViewController 设置为情节提要的初始视图控制器。
编辑
您需要对 GameOver 场景进行转场。现在你的初始视图控制器无法呈现它。
【讨论】:
看起来你的 GameOver 场景没有 segue,所以你的初始视图控制器无法呈现它。 好的,如果我只是通过代码切换场景,我不需要转场?因为当我通过代码进行切换时,它可以很好地切换到游戏结束场景。回家后我会添加一个 segue。 如您所见,即使您的程序按照您想要的方式运行,如果您没有 segue,Xcode 也会对您大喊大叫。如果您想自己展示 GameOver 并且不让情节提要管理它,您可以将 GameOver 移到它自己的 nib。 好的,非常感谢您的帮助,如果有效,我会通知您。 @Darkstar 你是如何通过代码切换场景的?该错误还表明您的视图控制器没有用于在代码中创建它的故事板标识符。【参考方案3】:错误原因是存在相同的 viewController 标识符!您需要在 storyBoard 上方的不同 viewController 上提供不同的标识符。
【讨论】:
以上是关于由于缺少入口点,场景无法访问的主要内容,如果未能解决你的问题,请参考以下文章
“场景由于缺少入口点而无法访问并且没有...” - 解决此警告
如何解决 Xcode 4.3.1 中的这个新警告:“由于缺少入口点,场景无法访问......”?
为 iOS 应用创建登录页面:“View Controller”无法访问,因为它没有入口点,也没有运行时访问的标识符