草庐IT

NStimer、CADisplayLink、dispatch_source_t

全部标签

ios - 对于通过 scheduledTimerWithTimeInterval 分配的 NSTimer 属性,应该使用什么保留策略?

我正准备将NSTimer属性添加到我的一个类中,以便在必要时/如果需要可以将其取消。我打算将它与+scheduledTimerWithTimeInterval一起使用:我应该使用strong、assign、copy还是unsafe_unretained?(使用ARC)。 最佳答案 为此使用strong。通常,您还希望像这样覆盖setter:-(void)setTimer:(NSTimer*)aTimer{if(aTimer!=_timer){[_timerinvalidate];_timer=aTimer;}}这样,当您更改或清除(

objective-c - 执行 UIGesture 操作时,NSTimer 暂停了一段时间

NSTimer暂停一段时间,然后在执行UIGesture操作时再次启动。我正在开发一个iOS应用程序,我必须每0.5秒重复触发一次NSTimer,并根据该计时器移动歌曲进度条。当用户触摸我保存在同一View中的某些图像时,还会处理触摸事件。我看到当用户触摸图像时,移动进度条的计时器会停止一会儿然后再次继续。是否存在无法在同一个View中同时处理定时器和触摸事件的问题?我的定时器代码myTimer=[NSTimerscheduledTimerWithTimeInterval:timeintervaltarget:selfselector:@selector(updatplayer:)us

iphone - CADisplayLink 时间戳在设备上表现异常

对于我的游戏循环和某些动画,我想知道自上次调用render:方法以来耗时间隔。为此,我使用CADisplayLink并获取当前时间戳并减去上次调用的时间戳。这应该给我两个帧/调用之间的正确时间间隔。在模拟器中运行应用程序时,我得到了各种不同的间隔值,这看起来不错。但是,如果我在iPad上运行应用程序,我只会得到两个不同的间隔值:0.000和0.125。大多数情况下,这两个值交替出现。这是我用来确定间隔的代码。//Timecalculations(foranimationsandstuff)_lastCallTime=_currentCallTime;_currentCallTime=[

ios - NSTimer 增长数据量

我在Instruments中观察我的应用程序以降低内存使用量和内存增长。我发现了一件奇怪的事情。当我以一定间隔(在我的例子中是0.1秒)启动NSTimer时,在Instruments中我可以看到CFArray(store-deque)和CFArray(mutable-variable)仍在增长(大约每秒200字节)。那样行吗?还是有问题?#Living数量不变,#Transitory和#Overall增长。此外整体内存仍然更大。对我来说,有很多事情都在阴影中。像Malloc32Bytes,Malloc48Bytes...当然,在计时器“tick”时调用的方法是空的,以确保不是我...我

iphone - dispatch_async 中的自定义 block

这段代码有效[[MyManagersharedManager]makeRequestAndParsingfor:someParameterssuccess:^(NSDictionary*dictionary){//SucessfulresponseNSLog(@"Success!!");}failure:^(NSError*error){//ErrorresponseNSLog(@"Failure!");}];但是每当我在后台运行相同的程序时,它永远不会进入成功或失败block。dispatch_async(dispatch_get_global_queue(DISPATCH_QUEU

ios - Label 和 NSTimer 阴影设计

我是iOS的初学者,需要一些线索来做一些感觉不太容易做的事情......我必须更改我的计时器设计(耗时和剩余时间),看起来像这样:对于看起来像这样的东西:你能给我任何线索吗(除了我已经知道的阴影颜色和偏移属性)?我现在的主要猜测是:如何区分这两种状态:没有时间时为灰色,有时间时为蓝色。提前致谢! 最佳答案 您是iOS开发的新手,所以我不确定将一些第3方框架扔到您头上是否是个好主意!但无论如何,看看TTTAttributetLabel.我不是UILabel的直接替代品,它允许您以不同的方式设置UILabel文本部分的样式,因此它可以满

ios - 使用 FMDB 将数据插入 SQLite 时,dispatch_async 上的 EXC_BAD_ACCESS

所以,我已经通读了我在互联网上找到的所有帖子,但我似乎仍然无法完成这项工作。我正在尝试将大量数据插入到sqlite数据库中。它是20000行数据,所以我必须在后台线程中进行。我有一个NSObject.h和.m文件来处理数据库操作。我从我的主视图中调用它们。这是我的代码:SQLiteDBHandler.m:database=[FMDatabasedatabaseWithPath:[selfgetDBPath]];[databaseopen];dispatch_queue_tq=dispatch_queue_create("FMDBQueue",NULL);dispatch_async(q

ios - 响应 uibutton 的 NSTimer

所以,问题来了。我正在尝试为我的游戏制作一个计时器,但它似乎没有运行。我首先为nstimer创建了一个属性:@property(nonatomic)NSTimergameTimer;并合成它:@synthesizegameTimer=_gameTimer;然后我用这个方法来设置:-(NSTimer*)gameTimer{if(_gameTimer==nil)_gameTimer=[[NSTimeralloc]init];return_gameTimer;}然而,当我尝试通过uibutton启动计时器时:-(IBAction)play:(UIButton*)sender{_levelNu

ios - 如何暂停/恢复 NSTIMER?

这个问题在这里已经有了答案:HowtoPause/PlayNSTimer?(6个答案)关闭9年前。我是这样使用NSTimer的GameTimer=[NSTimerscheduledTimerWithTimeInterval:60.0/60.0target:selfselector:@selector(Move)userInfo:nilrepeats:YES];在Move方法中,我更新了View的位置。-(void)Move{CGRectOldPosition=self.JumbleWordView.frame;CGRectNewPosition=CGRectMake(OldPositi

ios - 为什么对象在 NSTimer 失效后重置?

我有一个NSTimer调用一个函数来移动一些UIImageView,当我使NSTimer无效时,我认为UIImageView会停在它们的位置,但它们会重置到StoryBoard设置的位置。我做错了什么或没有包括在内还是这是一个谜?编辑-添加了一些代码.hNSTimer*updater;.mupdater=[NSTimerscheduledTimerWithTimeInterval:1.0f/32.0ftarget:selfselector:@selector(gameEngine)userInfo:nilrepeats:YES];-(void)gameEngine{//movesome