目的

iOSアプリで、パーティクルを利用している部分にワーニングが表示されていて、ちょっと気持ち悪かったので対応した。

ワーニング内容については以下

ワーニング対応
unarchiveObject(withFile:)' was deprecated in iOS 12.0: Use +unarchivedObjectOfClass:fromData:error: instead

環境

  • Xcode Version 12.2
  • Swift 5

参照サイト

unarchiveObject(withFile :)の非推奨を解決する方法

対応メモ

ワーニングとなっていた部分は以下の2行目で

ワーニング発生部分
let path = Bundle.main.path(forResource: "pa", ofType: "sks")
let particle = NSKeyedUnarchiver.unarchiveObject(withFile: path!) as! SKEmitterNode
//.....

以下のように対応しました。

対応方法
do {
    let path = Bundle.main.url(forResource: "pa", withExtension: "sks")
    let fileData = try Data(contentsOf: path!)
    let particle = try NSKeyedUnarchiver.unarchiveTopLevelObjectWithData(fileData) as! SKEmitterNode
    //.....
    
} catch {
}

以上です。