草庐IT

dispatch_time_t

全部标签

ios - 在 iOS 中使用 dispatch_async 时的内存警告

我有下面的代码以30fps的速度捕获jpeg帧并以mp4格式录制视频。我正在尝试将processFrame方法包装在dispatch_async调用中,以便录制过程不会锁定视频播放器。问题是我得到了2级内存警告,应用程序最终在几秒钟后崩溃了。我可以看到dispatch_async方法在尝试将每个帧附加到录制的视频输出中时将队列加载到内存中,并且在30fps时,它没有足够的时间来处理帧并释放已用内存。我尝试使用dispatch_after来延迟processFrame的执行,但它没有帮助。有任何想法吗?我应该采取不同的做法吗?此方法每秒被调用约30次。//Processthedatase

objective-c - iOS 应用内购买 : only one payment added to the SKPaymentQueue but a SKPaymentTransactionObserver method is getting called multiple times

我正在使用测试用户(在沙箱中)测试IAP,我有一个实现SKPaymentTransactionObserver协议(protocol)的类,当用户选择某个TableView单元格时,我启动支付:SKPayment*payment=[SKPaymentpaymentWithProductIdentifier:productIdentifier];[[SKPaymentQueuedefaultQueue]addPayment:payment];这只完成一次,我已经检查过:代码被调用一次。问题是“-(void)paymentQueue:(SKPaymentQueue*)queueupdate

objective-c - MKMapView setSelected : animated: not working first time

当我在注释上调用MKMapView方法setSelected:animated:时,它不起作用。但是如果我下次用不同的注释调用它,它就会开始工作。任何人都知道什么可能是错的?谢谢代码(2个相关方法):-(void)viewDidLoad{[superviewDidLoad];annotations=[[NSMutableArrayarrayWithCapacity:30]retain];for(NSDictionary*entryinentries){doublelat=[[entryobjectForKey:@"lat"]doubleValue];doublelon=[[entryo

iphone - UIActivityViewController 报告 "Remote compose controller timed out"

当我通过Message点击我的应用程序共享时,我在Xcode控制台中得到了这个:然而,Mailone工作得很好。MessageController从不明显显示,这在发布的应用程序中很烦人。Remotecomposecontrollertimedout(YES)!这是Apple的错误吗?它今天才开始发生。代码:if(SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"6.0")){NSString*textToShare=[NSStringstringWithFormat:@"test"];NSArray*activityItems=[[NSArrayal

ios - 升级部署目标时 dispatch_release 编译器错误

我被告知要将iOS应用程序的部署目标从iOS5.1.1升级到iOS6.0。我在代码中有几个dispatch_queue_t变量和相应的dispatch_release函数调用。编译器直到现在才提示我已经提高了部署目标。我读过几篇与此相关的文章(例如DoesARCsupportdispatchqueues?),据说从iOS6.0开始不再需要dispatch_release了,但是...我需要替换这样的吗与另一个函数调用,还是我只是删除它们?谢谢 最佳答案 基本上,您可以简单地删除它们。编译器会自动发出代码以将调度队列和其他GCD对象作

ios - NSManagedObjectContext 的 performBlock 中的 dispatch_async

根据WWDC2012视频“核心数据最佳实践”,dispatch_sync应该用于在上下文的performBlock中运行某种回调,创建为一种NSPrivateQueueConcurrencyType。这是为什么?我可以使用dispatch_async(dispatch_get_main_queue(),0)...在私有(private)队列上下文的performBlock中调用一些与UI相关的回调吗? 最佳答案 没有。NSPrivateQueueConcurrencyType管理它自己的内部队列,并且不喜欢你试图离开它的线程之一去做

ios - 如何在 iOS7 中停止线程(由 dispatch_queue_create 创建)

我在我的iOS应用程序中创建了这个线程,我想停止它:dispatch_queue_tmyDispatch=dispatch_queue_create("com.myqueue",DISPATCH_QUEUE_CONCURRENT);其中的myDispatch线程分别调用dispatch_global_queue和dispatch_main_queue执行繁重的操作和图形操作。但是为了响应应用程序中的用户操作,可以调用另一个函数,该函数使用另一个与myDispatch非常相似的队列。如果myDispatch线程终止,则没有问题,但此调用也可能在myDispatch线程执行期间发生,因此我

ios - 使用 dispatch_async,使用你自己的单独队列还是你自己的全局队列?

所以当使用dispatch_async...例如,假设您正在建立网络连接...dispatch_queue_totherQ=dispatch_queue_create(NULL,0);__weakMyClass*myself=self;dispatch_async(otherQ,^{myself.searchResultsRA=[myselfdataFrom:happyUrlifError:nil];dispatch_async(dispatch_get_main_queue(),^{if(after)after();});});dispatch_release(otherQ);请注意

ios - dispatch_after 还是 NSTimer?

我开发了一种方法,每3秒显示一个移动的图像。我使用dispatch_after进行制作,但在应用程序的每次执行中,显示图像的距离或时间都是不同的。将NSTimer与Schedule一起使用更有效吗?? 最佳答案 是的,NSTimer是高级API,易于实现和控制,如果您想暂停或停止该动画,您可以这样做。但据我所知,GCD的性能更好。 关于ios-dispatch_after还是NSTimer?,我们在StackOverflow上找到一个类似的问题: https:

ios - Xcode 测试版 4 : Can't create a Bot - Crashes every time

每次我尝试使用XcodeBeta4创建机器人时,我都会崩溃。Process:Xcode[4678]Path:/Applications/Xcode-beta.app/Contents/MacOS/XcodeIdentifier:com.apple.dt.XcodeVersion:7.0(8178.7)BuildInfo:IDEFrameworks-8178007000000000~3CodeType:X86-64(Native)ParentProcess:???[1]Responsible:Xcode[4678]UserID:501Date/Time:2015-07-2210:42:2