我正在开发一款可以将文本转换成摩尔斯电码,然后用iPhone的手电筒闪现出来的应用程序。我使用字符串替换将NSString的内容转换为摩尔斯电码。我找到了一个脚本,可以用NSTimer打开和关闭iPhone的手电筒,间隔时间可调。但我不知道如何添加两个不同的间隔,一个是摩尔斯“。一个是摩尔斯字母"-“。有谁可以帮我?
- (void)viewDidLoad {
[super viewDidLoad];
int spaceTime;
spaceTime = 1;
int flashTimePrik;
flashTimePrik = 5;
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:flashTimePrik
target:self
selector:@selector(strobeFlashTimerCallback:)
userInfo:nil
repeats:YES
];
}
- (void)strobeTimerCallback:(id)sender {
if (strobeActivated) {
strobeIsOn = !strobeIsOn;
strobeFlashOn = YES;
} else {
strobeFlashOn = NO;
}
}
- (void)strobeFlashTimerCallback:(id)sender {
if (strobeFlashOn) {
strobeFlashOn = !strobeFlashOn;
[self startStopStrobe:strobeIsOn];
} else {
[self startStopStrobe:NO];
}
}
发布于 2011-12-07 05:47:13
只需使用一个定时器,即可根据点、破折号或间隔设置时间间隔。表示"A“,它是点空间破折号
发布于 2011-12-07 07:52:58
使用无数的定时器。全是单发模式。想要一个短电话来闪现短电话。然后在计时器回调中,为下一个破折号或点创建另一个计时器。当阵列中没有更多要传输的信号时,就完成了。代码是近似值...
- (void)lightTimerOffCallback:(id)sender {
turnLIGHTOFF
[NSTimer scheduledTimer:intervalbeforeStartingNextChar... selector(@startNextDotOrFlash) repeat NO]
}
- (void)startNextDotOrFlash:(id)sender {
if (there is a new dot or dash to do)
intervalToLeaveThisLightOn = 1.0 : 0.1 ? isDot;
turnLIGHTON
[NSTimer scheduledTimer:intervalToLeaveThisLightOn... selector(@lightTimerOffCallback) repeat NO]
}
不需要iVar中的计时器。
https://stackoverflow.com/questions/8407142
复制相似问题