2014-10-28 69 views
2

自从XCode的最新更新以来,以下两行代码有编译错误。任何人都可以请我对我需要做的调整来让程序重新编译和运行吗?SWIFT代码dataWithContentsOfFile更新到XCode 6.1

 var sceneData = NSData.dataWithContentsOfFile(path, options: .DataReadingMappedIfSafe, error: nil) 
     var archiver = NSKeyedUnarchiver(forReadingWithData: sceneData) archiver.setClass(self.classForKeyedUnarchiver(), forClassName: "SKScene") 

任何帮助将不胜感激,谢谢。

回答

12

可以使用(iOS版< 8.0)

NSData.dataWithContentsOfMappedFile(path) 

或(iOS版> = 7.0)

var sceneData = NSData(contentsOfFile: path, options: .DataReadingMappedIfSafe, error: nil) 

如果你的XCode 6.1创建一个新的SpriteKit样本项目,你会看到的变化。

+0

即固定码错误(三江源)的第一行。然而,第二行没有编译时在“archiver.setClass ....”之前标记的错误,表示一行中的连续语句必须用a;分隔。这条线上的任何想法? – Frankeex 2014-10-28 10:39:32

+0

在sceneData后添加分号:NSKeyedUnarchiver(forReadingWithData:sceneData); archiver.setClass(s​​elf.classForKeyedUnarchiver(),forClassName:“SKScene”) – cncool 2014-10-28 11:15:51

+0

Ooops,非常感谢。不胜感激! – Frankeex 2014-10-28 11:26:43

-1

尝试这种

var sceneData = NSData(contentsOfFile: path!, options: .DataReadingMappedIfSafe, error: nil) 
+0

欢迎来到SO:SE。请参阅[答案]以撰写网站所期望的更详细的帖子。例如,你想解释这条线比6个月前发布的当前选择的答案更好。 – mins 2015-04-27 17:06:46