ios - 从服务器上的文本实例化 Swift 类
问题描述
我有一个 iOS 应用程序,我想在其中实现订阅模型。然而,用户购买的物品需要我经常编写新的 Swift 类。
我希望不必依赖用户更新应用程序来查看新内容。有没有办法在构建时从任意文本文件实例化一个类,我可能会从服务器部署?
编辑:自从阅读您的评论后,我已经回到现实,但我还将添加一些代码来澄清我的用例。也许我缺少另一个解决方案。
本质上,这个应用程序中的“资产”是算法生成的音乐片段。所以一个项目可能包含连接在一起的 AudioKit 节点。我可能有这样的课程:
class sawtooth:sound {
var pwmOscillator:AKPWMOscillator? // = AKTable(.sawtooth, count: 4_096)
var countDownToNextPitch:Double
var sawtoothTwo:AKTable
var oscillatorTwo:AKOscillator
var lpf:AKLowPassFilter
// ... instantiate more nodes and parameters
init (filterFactor: Double) {
self.pwmOscillator = AKPWMOscillator(frequency: 32.7031956626)
self.pwmOscillator?.pulseWidth = 0.2
self.sawtoothTwo = AKTable(.sawtooth, count: 4_096)
self.oscillatorTwo = AKOscillator(waveform: sawtoothTwo)
self.oscillatorTwo.frequency = 65.4063913251
self.oscillatorTwo.amplitude = 0
self.chorusMixer = AKMixer(self.pwmOscillator!, self.oscillatorTwo)
// ...etc.
}
func behavior(atTime:Double, withProgramInstance:program) {
// Add parameters that define how sound evolves with time
}
}
不需要硬更新就可以部署其中的一些东西会很棒。但如果那是不可能的,那就不可能了。
解决方案
即使您使用订阅模式,您的应用程序也必须已经具备提供优质内容所需的一切。我看到的唯一解决方案是在您的客户端拥有可以由服务器端配置的模型。为了简化:
假设您有一项资产要在用户购买时启用。假设您有一个像这样的模型类
class Asset {
var id: Int
var nodes: [MyNode]
func connect(to: SomeObject) {
{...} //Some nodes related logic etc
}
}
class MyNode {
var type: MyNodeType
var oscillator: Oscillator
var {...}
}
基本上,您所做的是从后端获取资产配置,例如 JSON。然后,您只需从此配置文件创建对象。无需对应用程序中的所有内容进行实际硬编码,您只需要为您的节点提供适当的可重用模型。您可以从服务器获取。
推荐阅读
- javascript - 节点子进程生成不执行命令
- python - 如何正确地将我的 tkinter 按钮与空格对齐
- random - Fortran 中的随机数
- c# - 更改材料设计复选框内的文本
- .net - 为 CRUD 操作创建基本服务
- python - 合并具有多个键且一个键为列名的 DataFrame
- r - 如何编辑 ggVennDiagram 交叉点填充区域
- javascript - 如何在平板电脑分辨率中找到 x 和 y 位置并通过用户输入的警报消息进行验证
- python - 如何使用 kivy 在 python 中动态访问单独的相机类(无需预初始化相机)
- exe - 如何检测.exe文件是否包含未编译的代码