简体   繁体   English

如何将自定义c ++类对象保存到NSUserDefaults?

[英]How do I save a custom c++ class object to NSUserDefaults?

I want to add a C++ Class object into NSUserDefaults . 我想将C ++类对象添加到NSUserDefaults If I add it directly, it crashes. 如果我直接添加它,它会崩溃。 How do I add c++ Class object to NSUserDefaults? 如何将c ++类对象添加到NSUserDefaults?

NSUserDefaults supports some NSObject -based classes to be encoded out of the box. NSUserDefaults支持一些基于NSObject的类,可以直接进行编码。 Proper way to save custom NSObject classes into NSUserDefaults instance is to encode them into NSData and save it. 将自定义NSObject类保存到NSUserDefaults实例的正确方法是将它们编码为NSData并保存。

In your case, since you have a C++ class, you could either wrap it's data to an NSObject ( NSDictionary maybe) or implement a class <-> string serialisation and deserialisation, saving a string object into the NSUserDefaults instance. 在您的情况下,由于您具有C ++类,因此可以将其数据包装到NSObject (可能是NSDictionary ),也可以实现类<->字符串序列化和反序列化,将字符串对象保存到NSUserDefaults实例中。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM