存储复杂Swift对象的最佳方式,允许通过app提取和运送它们

问题描述 投票:-1回答:1

我即将完成音乐制作应用程序的开发,我想添加保存和加载项目/会话的功能。该应用程序围绕一个“循环机器”构建,该机器将记录的音符存储在多维数组中,并且它具有许多效果参数和必须与这些数组一起保存的其他状态。这将是我第一次使用iOS中的数据存储,所以我正在寻找关于哪个系统最好的指导。

我看了一下CoreData,似乎需要很长时间才能将这些数据转换为适合托管对象的形式。 Realm似乎是一个更容易的选择,因为你可以按原样保存对象,对吧?这引出了我的问题的第二部分:我想用应用程序运送一些工厂项目 - 有没有办法提取使用Realm(或其他方法)保存的数据,以便我可以随应用程序准备好供用户加载?

另一个考虑因素是将数据存储系统集成到现有XCode项目中会有多困难。

这是循环机器对象的摘录,让您了解为什么我认为CoreData是一种效率低下的方法(还有一些像这样的其他大类):

open class LoopMachine {
   var delegate: LoopMachineDelegate!
   static let defaultTempo = 120
   static let numLoopsPerSource = 3
   static let minLoopLength = 4
   static let maxLoopLength = 32
   static let ticksPerBeat = 32
   var master: Master!
   var sources: Array<LoopSource?>!
   var activeSource = 0
   var beatsPerMeasure = 4
   var currentBeat = 1
   var currentTick = 1
   var metronome = AKMetronome()
   var metronomeOn = true
   var storedTempo: Int! // Used to store the current tempo when it is halved for easy rec mode
   var isPlaying = false
   var isRecording = false
   var countIn = true
   var countingIn = false
   let numSources = 12
   var quantization = 2 // How many ticks to quantize recorded notes to, min: 2 max: ticksPerBeat
   var quantizeNoteOnOnly = true
   var copiedLoop: Loop?
   var copiedLoopType: Int?

这只是我第二次发帖,所以如果我错过任何事情就道歉 - 请告诉我。

ios swift core-data realm persistent-storage
1个回答
0
投票

目前尚不清楚您将拥有多少数据,但总的来说,听起来好像您应该关注文档类型持久性,而不是数据库/核心数据。每个项目有1个文件。

Matt的Codable建议是一个开始寻找的好地方。

将工厂项目保存为单个文件,并将它们作为资源捆绑在应用程序中。

© www.soinside.com 2019 - 2024. All rights reserved.