草庐IT

NStimer、CADisplayLink、dispatch_source_t

全部标签

ios - dispatch_semaphore_wait 不等待信号量

我开发了以下方法,用于检查应用程序与服务器通信的能力。该方法执行一个简单的查询,并且知道如果得到结果,应用程序应该已连接(基本的ping机制)。-(BOOL)isAppConnected{__blockBOOLisConnected=NO;dispatch_semaphore_tsemaphore=dispatch_semaphore_create(0);[[SFRestAPIsharedInstance]performSOQLQuery:@"SELECTidFROMAccountLIMIT1"failBlock:^(NSError*e){isConnected=NO;NSLog(@"

ios - [__NSArrayM objectForKeyedSubscript :]: unrecognized selector sent to instance - source code and screenshot attached

在GitHub我有asimpleiPhoneapp,它从社交网络Mail.ru获取用户信息(通过使用OAuth):它确实获取并打印了信息,但随后崩溃了。作为iOS编程新手,我对下面的输出感到困惑(另请参阅thefulloutputatPasteBin):2014-01-2121:21:10.873oauthMailru[8228:3307]-[__NSArrayMobjectForKeyedSubscript:]:unrecognizedselectorsenttoinstance0x8a972902014-01-2121:21:10.875oauthMailru[8228:3307]

ios - "Unknown selected data source for Port iPhone"电话后

我有一个视频聊天应用程序,在我的iPhone5s上,当进行视频聊天时,一旦GSM电话打进来,Xcode总是打印出一条日志:2013-12-1714:50:00.826xxxxx[2485:780f]14:50:00.826ERROR:[0xad85000]AVAudioSessionPortImpl.mm:50:ValidateRequiredFields:UnknownselecteddatasourceforPortiPhoneÈ∫¶ÂÖãÈ£é(type:MicrophoneBuiltIn)只发生在iPhone5'设备上,而我的iPhone4s没有这样的问题,有人知道这个日志是什

ios - AVAssetExportSession exportAsynchronouslyWithCompletionHandler : Source frame unsupported format

我正在使用AVAssetExportSession导出从库中选择的视频。它适用于所有类型的所有视频,除了横向录制的屏幕录制(使用iOS11中的屏幕录制功能)。奇怪的是,它适用于其他横向视频,而且它也适用于相同屏幕录制功能的纵向视频。但是我已经尝试了两个横向屏幕录制的视频,但它们都失败了,并显示错误Sourceframeunsupportedformat。我该如何解决这个问题?更新:视频在导出前在“照片”和我的应用中都可以正常播放。 最佳答案 视频尺寸可能不像1920X1080那样标准,屏幕录制在某些设备中会产生非标准视频分辨率。录制

iphone - CADisplayLink 吞下异常

我注意到在使用CADisplayLink时,异常会被吞没:CADisplayLink*aDisplayLink=[[UIScreenmainScreen]displayLinkWithTarget:selfselector:@selector(doIt)];[aDisplayLinksetFrameInterval:100];[aDisplayLinkaddToRunLoop:[NSRunLoopcurrentRunLoop]forMode:NSDefaultRunLoopMode];...-(void)doIt{NSLog(@"Before");//ForceanexceptionN

iphone - iOS 系统时间更新导致 NSTimer/NSDate funkiness

我正在开发一个应用程序,它有一个事件计时器,可以为可以持续很长时间的事件(duh!)计时。我在相当长的一段时间内用计时器完成了其他应用程序,以前从未遇到过这个问题。基本上,当应用程序启动时,我设置了一个NSDate值和[NSDatedate]。然后,我有一个预定的NSTimer对象,它定期触发并通过将当前[NSDatedate]值与原始值进行比较来检查经过了多少时间。据我所知,这是做这类事情的正确方法,但如果我在上一段中有错误的假设,请纠正我。无论如何,过去几周在我的新iPad上进行测试时,我以不同的方式(随机地)发现了几次我的系统时间似乎在跳跃。在一个实例中,时间似乎跳跃了64秒!这

ios - 执行 NSURLRequest 和响应委托(delegate)与使用 dispatch_async 有什么区别?

我正在努力解决异步问题;分派(dispatch)、多线程、运行循环等。有什么区别:1)在给定的方法中创建一个NSURLRequest和NSURLConnection,并让它执行并响应委托(delegate)方法(didReceiveResponse、didReceiveData、connectionDidFinishLoading等),以及2)创建一个block并让它dispatch_async?使用第一种方法,我可以访问委托(delegate)方法(我仍然可以访问那些使用分派(dispatch)的方法吗?),并且委托(delegate)方法的执行在触发(或接近触发)时执行。使用blo

ios - 主线程在 viewDidLoad 中的并发队列上执行 dispatch_async,或者在方法内执行事务

因此,在一些帮助下,我更加清楚嵌套GCD在我的程序中是如何工作的。原帖在:MakingsureI'mexplainingnestedGCDcorrectly但是,您不需要阅读原始帖子,但基本上这里的代码在后台运行数据库执行并且UI是响应式的:-(void)viewDidLoad{dispatch_queue_tconcurrencyQueue=dispatch_queue_create("com.epam.halo.queue",DISPATCH_QUEUE_CONCURRENT);dispatch_queue_tserialQueue=dispatch_queue_create("c

ios - 在 ARC 下使用 dispatch_write 将 NSData 写入后台唯一文件

我正在尝试创建一个具有唯一名称的文件并在后台向其写入数据。mktemp说只要有可能,就应该使用mkstemp(),因为它没有竞争条件。使用mkstemp会产生一个打开的文件描述符,因此dispatch_write似乎很明显。现在NSData必须使用dispatch_data_create包装在dispatch_data_t中。必须注意释放需要释放的内存,保留必须保留的内存。在ARC下,这不太明显。+(void)createUnique:(NSData*)contentname:(NSString*)nameextension:(NSString*)extensioncompletion

ios - 在 dispatch_async 中收到内存警告

这是我在cellForRowAtIndex中编写的用于下载图像的代码:dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),^{@autoreleasepool{__blockUIImage*img;__blockNSData*data;if(![messageDocument.SmallImageURLisEqual:@""]){data=[[NSDataalloc]initWithContentsOfURL:[NSURLURLWithString:messageDocument.Sma