Swift 4持久存储自定义类型数组的最佳方法是什么?

时间:2018-08-27 01:04:35

标签: ios swift

我有一个数组,其中包含每个对象都具有自定义和非基本类型属性的对象,例如URL和StorageReference(Firebase)。持久存储此数组内容的最佳方法是什么?我考虑过使用Realm,但是Realm仅存储具有原始类型属性的对象。随着应用程序的使用越来越多,从持久性存储中检索到的对象数量将继续增加,因为将从Firebase中检索的项目越来越多。

2 个答案:

答案 0 :(得分:0)

  

Realm支持以下属性类型:Bool,Int,Int8,Int16   ,Int32,Int64,Double,Float,String,Date和Data。

因此,理想情况下,您应该能够通过将任何自定义类型转换为合适的原始类型来覆盖它们。 例如,您可以将URL另存为String,同时保存到Realm并在检索时转换回。

答案 1 :(得分:0)

如果您不想包含第三方框架,则可以使用Codable协议并使用NSKeyedArchiver保存内容。 https://developer.apple.com/documentation/foundation/nskeyedarchiver

简单的示例:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

如果您的自定义类型更复杂,则可能需要实现自定义编码/解码方法,以更好地控制数据的保存和加载方式。 https://developer.apple.com/documentation/foundation/archives_and_serialization/encoding_and_decoding_custom_types