如何使用struct在Coredata中存储自定义对象 [英] How to store custom objects with struct in Coredata
本文介绍了如何使用struct在Coredata中存储自定义对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我必须存储一个自定义类对象Coredata。问题是我的自定义类包含结构体,枚举等。我尝试下面的方法。
I have to store a custom class object to Coredata. The problem is my custom class contains structs,enum etc.I tried following method.
- (void)encodeWithCoder:(NSCoder *)encoder 。
-(void)encodeWithCoder:(NSCoder *)encoder .
但发生此错误
[NSKeyedArchiver encodeValueOfObjCType:at:]:此存档不能编码结构'
[NSKeyedArchiver encodeValueOfObjCType:at:]: this archiver cannot encode structs'
将此对象存储到Coredata的最佳做法是什么。请帮助我。
What is the best practice to store this object to Coredata. Please help me.
推荐答案
您可以将结构包装在 NSData
,即
You can wrap the struct in a NSData
, ie
使用archiver编码
To encode with archiver
[coder encodeObject:[NSData dataWithBytes:&my_struct length:sizeof(my_struct)]
forKey:@"my_struct"];
并使用archiver解码
and to decode with archiver
NSData *data = [coder decodeObjectForKey:@"my_struct"];
[data getBytes:&my_struct length:sizeof(my_struct)];
这篇关于如何使用struct在Coredata中存储自定义对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文