私は、テキストをモールス符号に変換し、iPhoneの懐中電灯を使ってフラッシュするアプリケーションを作成しています。私は文字列置換を使用して、NSStringの内容をモールス符号に変換しています。2つの間隔でNSTimerを使用する
// some of the code :
str = [str stringByReplacingOccurrencesOfString:@"5" withString:n5];
str = [str stringByReplacingOccurrencesOfString:@"6" withString:n6];
str = [str stringByReplacingOccurrencesOfString:@"7" withString:n7];
str = [str stringByReplacingOccurrencesOfString:@"8" withString:n8];
str = [str stringByReplacingOccurrencesOfString:@"9" withString:n9];
str = [str stringByReplacingOccurrencesOfString:@"0" withString:n0];
NSString *morseCode = [[NSString alloc] initWithFormat:str];
self.label.text = morseCode;
iPhoneの懐中電灯をオン/オフするNSTimerを使用して調整可能な間隔でスクリプトを検出しました。しかし、2つの異なる間隔を追加する方法を理解することはできません。一つはドットに、もう一つはモールスダッシュに追加します。
- (void)viewDidLoad
{
[super viewDidLoad];
int spaceTime;
spaceTime = 1;
int dashTime;
dashTime = 2;
int dotTime;
dotTime = 0.8;
strobeIsOn = NO;
strobeActivated = NO;
strobeFlashOn = NO;
flashController = [[FlashController alloc] init];
self.strobeTimer = [
NSTimer
scheduledTimerWithTimeInterval:spaceTime
target:self
selector:@selector(strobeTimerCallback:)
userInfo:nil
repeats:YES
];
self.strobeFlashTimer = [
NSTimer scheduledTimerWithTimeInterval:dotTime
target:self
selector:@selector(strobeFlashTimerCallback:)
userInfo:nil
repeats:YES
];
}
- (void)strobeTimerCallback:(id)sender {
if (strobeActivated) {
strobeIsOn = !strobeIsOn;
// ensure that it returns a callback. If no, returns only one flash
strobeFlashOn = YES;
} else {
strobeFlashOn = NO;
}
}
- (void)strobeFlashTimerCallback:(id)sender {
if (strobeFlashOn) {
strobeFlashOn = !strobeFlashOn;
[self startStopStrobe:strobeIsOn];
} else {
[self startStopStrobe:NO];
}
}
私は2つのタイマーを使用する必要がありますか、または異なる間隔で1つを持つことはできますか?文字列の内容を配列に入れる必要がありますか? Obj-Cの新機能です。
感謝します! .... :) – ebsp