私は簡単なドラムマシンを作ります。この機能は、演奏される各サンプル間の時間をコントロールします(ドラムマシンのテンポをコントロールします)。私はスライダーでテンポをコントロールする必要があるので、可能ならばこれを使って '次のステップまでの時間の長さ'の値をコントロールできるようにしたいと考えています。私はこれを行うにしようとしたときしかし、それは私に指示NSTimeIntervalはスライダーがテンポスライダーの問題 - ドラムシーケンサーObj - C
を宣言されている互換性のないタイプここでである。これは、私に語っ
-(void)run
{
@autoreleasepool
{
// get current time
NSDate* time = [NSDate date];
// keeping going around the while loop if the sequencer is running
while (self.running)
{
// sleep until the next step is due
[NSThread sleepUntilDate:time];
// update step
int step = self.step + 1;
// wrap around if we reached NUMSTEPS
if (step >= NUMSTEPS)
step = 0;
// store
self.step = step;
// time duration until next step
time = [time dateByAddingTimeInterval:0.5];
}
// exit thread
[NSThread exit];
}
}
「時間がNSDateの一部です」
.M
- (IBAction)sliderMoved:(UISlider *)sender
{
AppDelegate* app = [[UIApplication sharedApplication] delegate];
if (sender == self.tempoSlider)
{
PAEControl* tempoControl = app.tempoControls[app.editIndex];
tempoControl.value = self.tempoSlider.value;
}
}
の.h
@interface DetailController : UIViewController
@property (weak, nonatomic) IBOutlet UISlider *tempoSlider;
- (IBAction)sliderMoved:(UISlider *)sender;
助けを借りていただければ、ありがとうございます。