Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 将数组保存为userDefault_Ios_Objective C_Arrays_Swift3_Nsuserdefaults - Fatal编程技术网

Ios 将数组保存为userDefault

Ios 将数组保存为userDefault,ios,objective-c,arrays,swift3,nsuserdefaults,Ios,Objective C,Arrays,Swift3,Nsuserdefaults,我的要求是用户必须浏览最后访问的页面,以便 我正试图将UIViewController的数组保存到NSUserDefault,但应用程序每次都会崩溃 let array = self.navigationController?.viewControllers UserDefaults.standard.set(array, forKey: "LastNavigationArray") 对于这个尝试来说,崩溃是不可能的 Terminating app due to uncaught excep

我的要求是用户必须浏览最后访问的页面,以便

我正试图将UIViewController的数组保存到NSUserDefault,但应用程序每次都会崩溃

let array = self.navigationController?.viewControllers
UserDefaults.standard.set(array, forKey: "LastNavigationArray")
对于这个尝试来说,崩溃是不可能的

 Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Attempt to insert non-property list object (
此外,我尝试了以下代码,但没有运气

let array = self.navigationController?.viewControllers
let encodedData = NSKeyedArchiver.archivedData(withRootObject: array)

UserDefaults.standard.set(encodedData, forKey: "LastNavigationArray") 
因为这次坠机是

Assertion failure in -[UICGColor encodeWithCoder:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-3600.7.47/UIColor.m:1549
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Only RGBA or White color spaces are supported in this situation.'
如果这是错误的,请建议我正确的实施方法。
因为我有非常复杂的导航流程。

UIViewControllers在UserDefaults中要保存的对象非常繁重


您可以为自己保留一个自定义对象,以标识导航堆栈中的所有视图控制器。例如,可以使用每个视图控制器的类名字符串构造自定义字符串。或者,更好的选择是只在用户默认值中存储最后一个视图控制器的类名。当用户再次打开应用程序时,您可以通过检查类名来实例化并显示该视图控制器。

崩溃与您按照保存数组无关logs@kapsym不,它正在和同样的东西碰撞log@kapsym您想让我放置整个堆栈跟踪吗?我想在这种情况下只支持RGBA或白色空间。如果苹果在他们的崩溃日志中给你提示的话,这会非常有用…@MikeAlter如果你只想保存用户最后所在的VC,你能保存标识符吗。是否有理由将整个ViewController保存为用户默认值?