2014-10-28 113 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