我正在阅读一些关于如何在 Cocoa 中使用 SQL 数据库的教程,看起来很简单。我也已经看过一些包装器,但是我找不到任何保存对象的方法。
使我的模型对象符合NSCoding
协议并将其NSKeyedArchiver
作为NSData
对象保存到数据库中是否正确?
我应该采取不同的做法吗?哪个是最好的方法?
您也可以使用 NSKeyedArchive,但恕我直言,这不是最好的解决方案。就像将所有数据存储在一个独立于平台的“数据库”一个 xml 文件中。它不是为此而创建的,也不是为此而优化的。我会创建一个 NSSqlArchieve 并将我想要的那些字段映射到本地数据库中,因为:在不同的数据库中,您可以有自定义字段、自定义类型字段,这可能会改进选择或其他数据库操作。或者您只是想利用某些系统表/数据而找不到映射或速度慢或其他问题。
NSData 可以存储/检索到 Blob/Clob,因为它是二进制数据。但是所有数据都转换为二进制格式并将其存储到数据库中……为什么要存储在那里,为什么不存储到文件中。发明数据库是为了存储和查询数据。