草庐IT

NStimer、CADisplayLink、dispatch_source_t

全部标签

ios - dispatch_async 用于从 url 获取许多图像

我想从不同的url获取许多图像并将其设置为图像的按钮。我试图像上面显示的那样执行此操作,但没有任何反应。当我访问这个ViewController时,它没有任何按钮图像,也没有显示横幅View...。dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),^(void){NSURL*url=[NSURLURLWithString:[pictureUrlobjectAtIndex:i]];NSData*data=[[NSDataalloc]initWithContentsOfURL:url];d

iOS - 调用 dispatch_async 时没有堆栈跟踪

我已经创建了一些示例代码来演示我的问题。-(void)test{void(^handler)(void)=^{NSArray*test=[NSArrayarray];[testobjectAtIndex:5];};handler=[handlercopy];dispatch_async(dispatch_get_main_queue(),handler);}当我调用测试方法时,我没有得到堆栈跟踪。调试器停在main.m并突出显示此行intretVal=UIApplicationMain(argc,argv,nil,NSStringFromClass([FantasyUniversalA

ios - NSTimer 与 CFRunLoopTimer

我的问题是哪个更好用?因为NSTimer反过来使用CFRunLoopTimer对象。什么比其他更好我在任何网站上都一无所知我用谷歌搜索但一无所获,我从Apple的文档获得了关于这两个的文档,但在阅读它们之后我不理解或不清楚使用NSTimer或CFRunLoopTimer做什么?任何帮助将不胜感激。 最佳答案 来自文档:CFRunLoopTimeris“toll-freebridged”withitsCocoaFoundationcounterpart,NSTimer.翻译:没关系,所以请使用NSTimer,除非您无论如何都深陷CF代

iphone - 除了使用 NSTimer 显示 AVAudioPlayer 音频文件的剩余时间之外,还有其他方法吗?

我用AVAudioPlayer播放音乐,想显示剩余时间。好像很多suggestanNSTimerthatfireseverysecond但恐怕这是低效且容易出错的。由于NSTimer的计时不是很精确(我听说过),因此计时器可能会在音频的同一秒内触发两次,然后倒计时会跳过一秒。这也是一个拉模型。有没有更聪明的方法让AVAudioPlayer会在每次一秒钟结束时调用我的倒计时? 最佳答案 虽然NSTimer是半不准确的,但您仍然可以让它每隔一秒左右调用一次,并从歌曲的currentTime属性中获取信息,并将其与duration属性。从

ios - 将 NSTimer 的 fireDate 之前的时间加倍

我正在使用NSTimer,在某些情况下,我想将方法​​NSTimer调用被调用之前的时间加倍。基本上:如果我将它设置为每0.5秒调用一次,我想偶尔延迟它以便它在下次调用之前等待1.0秒(时间加倍)。然而,我在实现这个方面遇到了很大的困难。这是我最初的尝试:-(void)viewDidLoad{[superviewDidLoad];[NSTimerscheduledTimerWithTimeInterval:0.5target:selfselector:@selector(timerMethod:)userInfo:nilrepeats:YES];}-(void)timerMethod:

ios - 使用 GCD 复制大文件 - Dispatch IO 消耗大量内存

我正在将大型文件复制操作从NSStream转换为使用GCD的调度IO实现。当将两个1GB的文件一起复制到一个2GB的文件中时,应用程序使用GCD会消耗2GB的内存。NSStream实现仅占用50MB。在Instruments中,我可以看到start_wqthread调用分配了1MBblock,正如我为调度IO高水位线请求的block大小,但在写入输出流后没有被释放,他们四处闲逛。缓冲区写入输出流后如何释放缓冲区?如果我在Xcode中创建一个全新的OSXCocoa应用程序并将以下代码粘贴到applicationDidFinishLaunching:方法中,它将消耗500-2000MB的内

ios - 观看 OS2 NSTimer 问题

我正在开发一个应用程序,当watch被激活时,我需要启动一个计时器(使用NSTimer)。使用计时器,我向iPhone询问一些信息(大约每1秒一次,最多5秒一次)。我用它来启动计时器timer=[NSTimerscheduledTimerWithTimeInterval:2target:selfselector:@selector(myfunction)userInfo:nilrepeats:NO];在“myfunction”函数中,我下次重新启动定时器。-(void)myfunction{//HereIupdatealabeltext//[...][timerinvalidate];

ios - Swift - NSTimer 为 userInfo 参数传递了错误的值

我最近开始学习Swift编程语言,我喜欢它。为了帮助我学习,我一直在使用XCode7开发几个简单的应用程序。其中一个应用程序是手电筒,其中一个功能是频闪灯。我决定使用NSTimer类来安排在设定的时间间隔调用手电筒切换功能,从而提供不错的频闪效果。我第一次破解定时器代码如下:-NSTimer.scheduledTimerWithTimeInterval(0.5,target:self.torch,selector:"toggleTorch:",userInfo:false,repeats:true)正如您在此处看到的,我使用自己定制的Torch对象来处理闪光灯切换功能。我将指定为实例变

ios - Discard all changes in Xcode source control 实际上做了什么?

作为问题,我想知道是否有一些文档说明这个Xcode命令的作用(源代码管理->放弃所有更改)?我猜它恢复到上次提交但是在本地分支上?有人可以确认它不会自动影响同一个远程分支吗? 最佳答案 我没有在XCode中使用git,但我可以肯定Discardallchanges将不会影响远程中的历史记录。它很可能会丢弃您对工作目录中的跟踪文件所做的所有未暂存更改,就像执行gitcheckout--.一样。从终端。使用unstaged,这意味着您执行一次更改gitadd-ufor不会被丢弃。顺便说一句,要弄清楚它到底做了什么,需要自己测试一下。

ios - 使用 NSTimer iOS Objective C 暂停/播放音频播放器

我正在开发一个音乐播放器应用程序。并在播放音频时使用播放/暂停按钮和进度条。我正在调用一个带有NSTimer的方法来更新进度条。我需要的是暂停进度条并在停止的地方恢复它。我可以使用链接中引用的代码暂停计时器和进度条:1.HowtopauseaNSTimer?2.HowtoPause/PlayNSTimer?但我正在努力恢复ii中断的地方。我还需要根据音频更新进度条。我的代码如下:AVAudioPlayer*audioPlayer;NSTimer*audioTimer;BOOLplay;BOOLispaused;intseconds1;intminutes1;inthours1;NSDa