草庐IT

NStimer、CADisplayLink、dispatch_source_t

全部标签

iphone - dispatch_async 是否在 for 语句中有什么区别

我想知道在以下表示为“A”和“B”的方法中使用dispatch_async之间有什么区别。Adispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),^{for(inti=0;iBfor(inti=0;i 最佳答案 语句A产生一个新任务,它恰好包含一个循环。语句B产生10个新任务,其中部分或全部任务可能要等到for循环完成后才能完成。 关于iphone-dispatch_async是否在for语

iphone - NSTimer 不从 AppDelegate 重复

为什么这在appDidFinishLaunching中不会重复?self.ti=[NSTimertimerWithTimeInterval:10.target:selfselector:@selector(bounce:)userInfo:nilrepeats:YES];[self.tifire];非常感谢朱尔斯 最佳答案 我认为您的bounce签名有误。应该是-(void)bounce:(NSTimer*)theTimer{NSLog(@"Here...");}您应该使用selector(bounce:)来安排此方法。您还应该调用

ios - 为什么 dispatch_async 不好?完成相同任务的更好方法是什么?

dispatch_async(dispatch_get_main_queue(),^{[self.teamNamebecomeFirstResponder];});我和一个friend聊天,他告诉我他听说使用dispatch_async不是很好,但他不确定为什么。我在谷歌上查了下,没有发现这段代码错误的原因我如何改进这段代码?有没有更好的方法来做到这一点?注意:我还在学习iOS编程,所以我对这整件事都是陌生的。 最佳答案 您的friend错误地认为dispatch_async是“坏的”。但是要求另一个处理器做像becomeFirst

ios - 一旦 NSTimer 停止在 objective-c 中关闭我的 View Controller

我正在使用NSTimer,timer=[NSTimerscheduledTimerWithTimeInterval:1.0target:selfselector:@selector(updateCountdown)userInfo:nilrepeats:YES];然后是我的60秒倒计时程序-(void)updateCountdown{inthours,minutes,seconds;secondsLeft++;hours=secondsLeft/3600;minutes=(secondsLeft%3600)/60;seconds=(secondsLeft%3600)%60;time.t

ios - 必须分派(dispatch)到 iOS 11 中的主线程

在iOS11之前,我能够动态地重新加载TableView数据,而无需将重新加载分派(dispatch)到主线程。但是,现在我正在安装了iOS11的设备上进行测试,似乎我必须将每个UI更新分派(dispatch)到主线程才能使其正常工作。否则我最终会得到空的UI元素。即具有所有行但没有标签的TableView,或没有标题的按钮等。有谁知道iOS11中发生了什么变化要求这样做?有办法关闭它吗? 最佳答案 从远古时代开始,Apple就强调所有与UI元素的交互必须发生在主/GUI线程上。不听从这个建议会导致奇怪的行为:有时它会工作正常,其他

objective-c - 如何在 View 消失时暂停并重新启动 NSTimer?

我在每15秒调用一次的View类中使用了一个NSTimer。我的问题是,它工作正常,但我的应用程序变慢了,因为它向整个应用程序展示了它的性能。所以我想在我的View从它的superView中消失时暂停NSTimer并在它出现时重新启动计时器。请帮我解决这个问题。这是我的代码:-(void)viewWillAppear:(BOOL)animated{if(!Thread_bool){//[spinnerstartAnimating];NSTimer*timer_new1=[[NSTimeralloc]init];timer_new1=[NSTimerscheduledTimerWithT

ios - objective-c - NSTimer 越来越落后

我有一个NSTimer(在主线程上运行),它应该每0.02秒关闭一次。但是,我注意到随着内存使用量开始上升(应用程序每个刻度捕获一帧并存储在数组中),后续刻度开始花费超过0.02秒。我该如何解决这个问题?我开始认为NSTimer不适合这样的高频任务。 最佳答案 作为docs状态,Atimerisnotareal-timemechanism;itfiresonlywhenoneoftherunloopmodestowhichthetimerhasbeenaddedisrunningandabletocheckifthetimer’sf

ios - 使用 arc 使 NSTimer 无效时遇到问题 - IOS

这个问题已经被问到死于堆栈溢出,我已经看到了过多的答案,但不知何故我仍然遇到了麻烦。无论如何,我分配了一个NSTimer,因为在我看来确实加载了:NSTimer*oneSecondTicker=[[NSTimeralloc]init];oneSecondTicker=[NSTimerscheduledTimerWithTimeInterval:1.0target:selfselector:@selector(updateLabelsWithOneSecondTicker)userInfo:nilrepeats:YES];self.dateForTimeLabel=[NSDatedate

objective-c - 如何停止 NSTimer 在此计时器回调方法中单击按钮时启动

我在停止单击按钮时启动的NSTimer时遇到问题。[timerinvalidate]和timer=nil;在我试图停止它时什么都不做viewWillDisappear也不在方法调用的方法中被这个定时器调用。但是,当我在viewWillAppear中启动计时器并在viewWillDisappear中使其无效时,一切都很好。我想在我启动计时器的线程中可能存在问题。你能帮忙吗?我查看了这里关于NSTimer不停止的所有答案,但它们并没有帮助解决问题。我初始化计时器的方式:timer=[NSTimerscheduledTimerWithTimeInterval:1.0target:selfse

ios - 5 秒后调用一个方法。没有 NSTimer

我想在不使用NStimer的情况下在iPhone中调用5秒后的任何方法或事件。 最佳答案 使用performSelector:withObject:afterDelay:方法。[selfperformSelector:@selector(methodName)withObject:nilafterDelay:5]; 关于ios-5秒后调用一个方法。没有NSTimer,我们在StackOverflow上找到一个类似的问题: https://stackoverfl