目的の ci では、処理を停止するためにsleep(6)を使用し、発生した通知コードの前に sleep(6) を配置します。
-(void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event {
if (motion == UIEventSubtypeMotionShake) {
sleep(6);
[FlurryAnalytics logEvent:@"User shaked to update"];
[[NSNotificationCenter defaultCenter] postNotificationName:@"CheckWeather" object:nil];
[[NSNotificationCenter defaultCenter] postNotificationName:@"startWeatherNeue" object:nil];
if ( [super respondsToSelector:@selector(motionEnded:withEvent:)] )
[super motionEnded:motion withEvent:event];
}
}
その後、プロセスを 6 秒間停止し、6 秒後に通知を開始すると、役立つ場合があります。
他の
u も NSTimer を使用します:-
NSTimerで、if else条件で応答配列カウント> 0を確認し、応答配列> 0の場合に1秒でメソッドを呼び出し、次にNSNOtificationメソッドを呼び出します
ここに私の例:-NSTimerを使用
-(void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event
{
self.TimeOfActiveUser = [NSTimer scheduledTimerWithTimeInterval:01.0 target:self selector:@selector(checkInfoString) userInfo:nil repeats:YES];
}
-(IBAction)checkInfoString
{
if([responsearray count]>0)
{
[FlurryAnalytics logEvent:@"User shaked to update"];
[[NSNotificationCenter defaultCenter] postNotificationName:@"CheckWeather" object:nil];
[[NSNotificationCenter defaultCenter] postNotificationName:@"startWeatherNeue" object:nil];
if ( [super respondsToSelector:@selector(motionEnded:withEvent:)] )
{
[super motionEnded:motion withEvent:event];
}
}
else
{
NSLOG
}
}