Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使对象随时可用以提高性能_Ios_Oop_User Interface_Memory_Object - Fatal编程技术网

Ios 使对象随时可用以提高性能

Ios 使对象随时可用以提高性能,ios,oop,user-interface,memory,object,Ios,Oop,User Interface,Memory,Object,我正在开发一个iPad音乐音序器,我用来播放声音的代码是 基本上,每次需要播放新样本时,CoreAudio都会从该示例中调用RenderTone方法 我的项目中有一个面向对象的模型,我想做的是:创建一个歌曲对象,将曲目添加到歌曲中。每个曲目都有多个条(度量),这些条由多个注释组成。根据当前的“播放”位置,将为必须在指定时间播放的每个音符生成正确的样本 所有这些对象都将基于应用程序GUI中的用户输入。但这是否意味着每次调用RenderTone方法时,我都必须阅读用户界面,并启动所有对象(从歌曲开始

我正在开发一个iPad音乐音序器,我用来播放声音的代码是 基本上,每次需要播放新样本时,CoreAudio都会从该示例中调用
RenderTone
方法

我的项目中有一个面向对象的模型,我想做的是:创建一个
歌曲
对象,将
曲目
添加到歌曲中。每个
曲目
都有多个
(度量),这些条由多个
注释组成。根据当前的“播放”位置,将为必须在指定时间播放的每个音符生成正确的样本

所有这些对象都将基于应用程序GUI中的用户输入。但这是否意味着每次调用
RenderTone
方法时,我都必须阅读用户界面,并启动所有对象(从歌曲开始,如上所述),以便计算帧

所以我想知道的是:如何使我的
Song
对象始终可用,以便调用类似
Song.getSamples(int numberOfSamples,int playPosition)的东西
何时调用
RenderTone
方法

我希望这是清楚的,这是不容易解释,所以如果有什么我忘记提到,让我知道

所有这些对象都将基于应用程序GUI中的用户输入。但这是否意味着每次调用RenderTone方法时,我都必须阅读用户界面,并启动所有对象(从Song开始,如上所述),以便计算帧

否。GUI应该更新模型(
Song
),并且
RenderTone
方法也应该引用
Song
。模型应与视图(GUI)类分开存储。它可以由一些中心对象(例如程序开始时的应用程序控制器)创建,并交给GUI和播放器。或者,您可以使用一个Singleton来保存
Song
或所有
Song
对象(例如可能具有
currentSong
属性的Singleton
SongManager