如何使用struct在Coredata中存储自定义对象 [英] How to store custom objects with struct in Coredata

查看:151
本文介绍了如何使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆