我正在尝试保存和加载一个SCNVector3
,这是我用来保存和加载向量的代码:
//Definition of the two vectors
let storedVector = SNCVector3Make(0,0,0)
let vector = SNCVector3Make(1,1,1)
let defaults = UserDefaults.standard
//Saving the vector
defaults.set(vector, forKey: "storedVector")
//Loading the vector into storedVector variable if already saved
let storedVector = defaults.object(forKey: "storedVector") as? SCNVector3 ?? storedVector
我必须检查该值是否已保存,因为我在按下按钮时保存该值并在加载应用程序时加载它。
问题是应用程序在保存矢量时崩溃。
但是,如果我像这样将向量分成三个浮点数:
defaults.set(vector.x, forKey: "storedVectorx")
defaults.set(vector.y, forKey: "storedVectory")
defaults.set(vector.z, forKey: "storedVectorz")
然后像这样加载它们:
storedVector.x = defaults.float(forKey: "storedVectorx")
storedVector.y = defaults.float(forKey: "storedVectory")
storedVector.z = defaults.float(forKey: "storedVectorz")
该应用程序不会崩溃。
我可以在应用程序崩溃且不将其分成 3 个浮点数的情况下保存矢量吗?