我使用Apple的新编程语言Swift在Xcode 6中编写SpriteKit游戏。我对swift相对较新,我能够在Xcode 6 Beta 3中无错误地构建应用程序。但是,自从Beta 4发布以来,我一直无法在我的iPhone上运行该应用程序,但iOS模拟器仍然有效
我的iPhone正在运行iOS 8 Beta 4和应用程序,如果在我的Mac上运行Xcode 6 Beta 4,它正在使用OS X Yosemite Beta 4.启动应用程序时,我在打开游戏的第一个场景之前收到错误,完整的错误在这里:
dyld:未找到符号:__Tdd1212oreGraphics7CGFloat 参考自:/private/var/mobile/Containers/Bundle/Application/5FA54F59-06DB-4044-AB46-B53431A70E79/Rollathon.app/Rollathon 预计在:/private/var/mobile/Containers/Bundle/Application/5FA54F59-06DB-4044-AB46-B53431A70E79/Rollathon.app/Frameworks/libswiftCoreGraphics.dylib in /private/var/mobile/Containers/Bundle/Application/5FA54F59-06DB-4044-AB46-B53431A70E79/Rollathon.app/Rollathon (lldb)
我的第一个场景是:
import SpriteKit
import CoreGraphics
class GameScene: SKScene {
let playBtn = SKSpriteNode(imageNamed: "playBtn")
let title = SKSpriteNode(imageNamed: "title")
let settings = SKSpriteNode(imageNamed: "settings")
override func didMoveToView(view: SKView) {
// Setup background
self.backgroundColor = UIColor(hex: 0x80D9FF);
// TODO: ADD SETTINGS
// Setup play button
self.playBtn.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame))
self.playBtn.setScale(0.2)
// TODO: Setup title image
//self.title.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMaxY(self.frame) - (self.title.size.height / 1.5))
// Add scene children
self.addChild(self.playBtn)
}
override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
/* Called when a touch begins */
for touch: AnyObject in touches {
let location = touch.locationInNode(self)
if self.nodeAtPoint(location) == self.playBtn {
// User has pressed play
var scene = PlayScene(size: self.size)
let skView = self.view as SKView
skView.ignoresSiblingOrder = true
scene.scaleMode = .ResizeFill
scene.size = skView.bounds.size
skView.presentScene(scene)
}
}
}
override func update(currentTime: CFTimeInterval) {
/* Called before each frame is rendered */
}
}
这很简单,这就是为什么我想知道问题是否是由另一个场景造成的;如果需要,我会上传更多场景。
先谢谢了, 英里。
答案 0 :(得分:5)
从您的设备中删除该应用,进行清理,然后再次运行。可能旧版本的某些编译代码被遗忘了。