Tag: 时间

NSTimer太慢了

我看到过类似的问题。 然而,他们没有一个解决了我的问题。 我的计时器太慢了。 我只用了0.01秒的时间间隔。 这是我的代码: @IBOutlet var timerLabel: UILabel! var miliseconds = 0 var seconds = 0 func updateLabel() { if miliseconds == 0 { timerLabel.text = "\(seconds).00" } else if miliseconds < 10 { timerLabel.text = "\(seconds).0\(miliseconds)" } else { timerLabel.text = "\(seconds).\(miliseconds)" } } var timer = NSTimer() func updateTime() { miliseconds++ if […]

使用当前时间计算arrays的最近时间

我有时间的数组中有6个对象 NSMutableArray *time=[[NSMutableArray alloc]initwithObjects:12:30, 14:40, 16:50, 20:30, 21:49, 23:12,nil]; Current time = 17:12; 我应该如何计算距离time_array 8:12的最近时间? conclusion must be 20:30 我实现了许多公式,比如在减去时间后得到最less的可用值,但是存在一些缺陷,并不是一个完美的解决scheme。 目标C中的任何一个人有没有想法来计算完美的最近时间? 我已经试过了 //// Calculating to fetch nearest time NSDateFormatter *current_time_format = [[NSDateFormatter alloc] init]; [current_time_format setTimeZone:zone]; [current_time_format setDateFormat:@"HHmm"]; NSString *current_date_string=[current_time_format stringFromDate:[NSDate date]]; int current_time_int=[current_date_string intValue]; int nearest_time=10000; int time_calculation=0; if ([calculated_time_array count]>=6) { [calculated_time_array removeAllObjects]; […]

将时间string转换为date格式iOS

我有一个string@“21:57”,我想在NSDate中使用相同的HH:mm格式保存它。 我试着用它转换它: NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init]; dateFormatter.dateFormat = @"HH:mm"; NSDate *date = [dateFormatter dateFromString:stringToConvertFrom]; 但我得到2000-01-01 21:57:00 +0000而不是21:57。

touchesMoved不定期地调用

我正在制作一款iOS游戏,主要是在屏幕上拖动大对象。 当我在实际的iPad / iPhone上运行游戏一段时间(持续在屏幕上拖动对象的圆圈)时,每隔5分钟左右拖动的对象就会全部结束约10-30秒 。 然后,它回到丝绸般光滑。 从表面上看,游戏的帧速率似乎下降到了15fps,但事实上,它一直在以60fps的速度运行。 不过,我注意到唯一不顺畅的是被拖动的对象 ,而游戏的其余部分都运行得非常顺利。 这让我相信口吃与iOS中的触摸input有关。 所以我开始看touchesMoved,看到它通常每16毫秒调用一次(所以触摸input以60 fps运行)。 到现在为止还挺好。 然后我注意到, 当对象开始口吃时,touchesMoved开始以奇怪的时间间隔被调用,在8毫秒和50毫秒之间波动很大。 所以,当触摸屏处于这种奇怪的状态时,有时touchesMoved会在前一次调用后的8毫秒内被调用,有时直到前一次调用后的50毫秒才会被调用。 当然,这使得被拖动的对象看起来全是断断续续的,因为它的位置是以不规则的间隔更新的。 你有什么想法是什么可能造成触摸移动停止被定期调用,如通常一样? 奖金: – 每当我倾斜屏幕强制屏幕方向改变时,大约70%的时间触摸屏进入上述状态touchesMoved开始被不规则地调用。 然后在10-20秒后恢复正常,再次看起来平滑。 – 我已经在两台iPad和两台iPhone(iOS 6和7)上试过了,这个问题出现在所有这些设备上。 – 使用OpenGLES视图来显示graphics。 它使用CADisplayLink同步到显示刷新率。 – 我用来testing这个的Xcode项目已经由unity3d游戏开发工具生成,但是我发现了几个非统一的游戏出现了相同的问题。 这似乎是一个全系统的问题。 注意我使用CFAbsoluteTimeGetCurrent测量objective-c中的CFAbsoluteTimeGetCurrent ,完全在统一之外。

iOS – backgroundTimeRemaining值没有显示预期的

我试图检查backgroundTimeRemaining的价值,但我得到了一个非常大的数字。 该属性的价值应该是对应的10分钟aprox,我已经在苹果的文档中看到 ,这样的价值是巨大的,当应用程序在前台。 但是,即使在后台,我也能获得很大的价值: – (void)applicationDidEnterBackground:(UIApplication *)application { bgTask = [application beginBackgroundTaskWithExpirationHandler:^{ [application endBackgroundTask:bgTask]; bgTask = UIBackgroundTaskInvalid; }]; // Background task NSTimeInterval timeRemaining = [UIApplication sharedApplication].backgroundTimeRemaining; NSLog(@"Background time remaining: %f seconds (%d mins)", timeRemaining, (int)(timeRemaining / 60)); dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ NSTimeInterval timeRemaining = [UIApplication sharedApplication].backgroundTimeRemaining; NSLog(@"Background time remaining: %f seconds (%d mins)", timeRemaining, (int)(timeRemaining / […]

如何控制UISlider Value Changed-events frequncy?

我正在写一个iPhone应用程序,使用两个uisliders来控制使用coreBluetooth发送的值。 如果我快速移动滑块,一个值会在接收器处冻结,大概是因为Value Changed事件经常触发,所以写入命令堆积起来并最终被扔掉。 我怎样才能确保事件不会经常触发? 编辑: 这是对问题的澄清; 蓝牙连接每隔105ms发送一次命令。 如果用户在那段时间内产生了一堆事件,他们看起来就像是一团糟。 我想扔掉连接事件之间产生的任何值,并每隔105ms发送一次。 这基本上是我现在正在做的事情: -(IBAction) sliderChanged:(UISlider *)sender{ static int8_t value = 0; int8_t new_value = (int8_t)sender.value; if ( new_value > value + threshold || new_value < value – threshold ) { value = new_value; [btDevice writeValue:value]; } } 我问的是如何实现类似的东西 -(IBAction) sliderChanged:(UISlider *)sender{ static int8_t value = 0; if (105msHasPassed) […]

函数返回打开,closures或closures从小时

我有一堆小时的操作我想确定商店是否打开,closures或closures在30,29,28,27 …分钟我在Xcode / Objectic-C做这个。 现在我必须这样做,让我们说50个不同的操作时间。 我已经做了一个这样做的function,但它不是很有效,并涉及到很多if-else语句。 这是一个示例小时的操作 Monday – Thursday 7:30am – Midnight Friday 7:30am – 10:00pm Saturday 9:00am – 10:00pm Sunday 9:00am – Midnight 这是我的function和我如何处理它 -(BOOL) dateAndTime:(NSDate*)date getStartDay:(NSInteger)startDay getStartHour:(NSInteger)startHour getStartMin:(NSInteger)startMin getEndDay:(NSInteger)endDay getEndHour:(NSInteger)endHour getEndMin:(NSInteger)endMin{ NSCalendar *calendar = [NSCalendar currentCalendar]; const NSCalendarUnit units = NSWeekdayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit; NSDateComponents *comps = [calendar components:units fromDate:date]; if […]

比较ios中的两个时间值?

在我的应用程序中,我想检查当前时间是保存在variables中的时间之前还是之后。 像我的时间1是time1=@"08:15:12"; 而我的time2是time2=@"18:12:8"; 所以我想比较time1和time2.Current这些variables是在NSString格式。 以下是用于获取时间的代码,我不知道如何比较它们。 码: NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; dateFormatter.dateFormat = @"HH:MM:SS"; [dateFormatter setTimeZone:[NSTimeZone systemTimeZone]]; NSLog(@"ewetwet%@",[dateFormatter stringFromDate:now]); 请帮帮我

离线时精确的时间检测

背景信息 我正在开发连接到服务器的iOS应用程序,并且可以从设备向服务器发出请求,以使本地数据库与服务器的数据库同步。 任何一个数据库都可能发生更改。 该应用程序还具有脱机function,用户可以在不连接到互联网连接的情况下修改数据,只通过发送新数据和从服务器接收更新来使设备的本地数据库与服务器的数据库同步。 更新了更多背景信息:处理的数据是必须在一定时间内完成的表单。 开始的时间作为属性存储在模型中,并且使用该属性,应用程序向用户显示该表单被locking之前还剩多less时间。 问题 当设备处于离线状态时,用户可以操纵时间设置,这会使从该设备收到的数据不准确。 我已经search了一种方法来检测设备时间设置的变化,但根据这个答案 ,这似乎不可能,除非我的应用程序在后台运行,苹果是非常严格的,并且不允许,除非应用程序启用了其中一种背景模式 ,这在应用程序中是不适用的。 更新了更多的信息:正如我在上面提到的背景信息的更新部分所述,数据是可能有时间限制的表格。 因此用户可以在一个设备上启动一个表单,但是不能在那里完成。 然后,他们将数据同步到服务器,跳转到另一个设备,并完成相同的forms。 build议的解决scheme 我最近解决这个问题的方法是,在安装应用程序时获取服务器时间和设备时间之间的差异(在第一次打开应用程序时确保在线,以便为此设备进行configuration),并且每当我想存储一个时间相关的值时,使用这个差别作为参考。 如果服务器检测到时间差异,它将拒绝来自该设备的所有数据,这将迫使设备恢复数据,更新时间差,只有这样才能从该设备接受数据。 问题是,当设备处于脱机状态时,用户可以更改时间设置,对数据执行更改,然后将时间设置返回到上一次联机之前的时间设置。 然后,服务器将检测到时间设置没有变化,并将接受无效的数据。 更新以添加另一个build议的解决scheme:在下面的问题中详细解释我的注释,以及@Krypton的注释,由于与上述解决scheme相同的问题,设备的正常运行时间对我的情况没有多大帮助。 将设备的正常运行时间与服务器时间进行比较是完美的, 直到用户重新启动设备 。 这不是用户可以手动更改的,但是所有这一切都需要重新启动才能打破一切,这将为我产生相同的不准确数据。 解决这个问题需要计算新的差异,这在设备离线时不起作用。 问题 是否存在不可更改的时间戳,可以在保存与时间相关的值时用作参考,使其不受用户对设备时间的更改影响? 这个例子就是设备第一次激活的时间。 ( 注 :最接近我发现任何相关的是设备的正常运行时间 ,但这并没有什么帮助我的情况) 有没有办法知道当前的时间,而不需要上网,只要一个时间相关的值将被保存? 有没有办法来解决我提出的解决scheme,或更好的解决scheme?

计算用于覆盖Apple Maps中旅程的时间

我正在研究MKMapView以获得2个位置之间的方向。是否有任何方法可以获得完成这个旅程所需的时间? MKRoute or MKDirection类的内置属性是否可以为我提供时间来支持这个旅程? 任何帮助,将不胜感激。 感谢Vikas