草庐IT

dispatch_after

全部标签

ios - 我会在 MBProgressHud block 中使用分派(dispatch)吗?

在MBProgressHud文档中,它声明在调度内部使用它,如下所示:[MBProgressHUDshowHUDAddedTo:self.viewanimated:YES];dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW,0),^{//Dosomething...dispatch_async(dispatch_get_main_queue(),^{[MBProgressHUDhideHUDForView:self.viewanimated:YES];});});考虑到您不希望它使主线程陷入困境,这

iOS 应用内购买 : executing code after App Store's "Buy" confirmation button is tapped but before user is charged

我的应用有大量用户购买了数量有限的消耗品。我想捕获用户使用AppStore的确认对话框和“购买”按钮确认购买的时刻,以便我可以调用服务器以确保用户可以收到他们的商品并自行取消交易(以避免用户被收费)如果不存在(即它们太慢)。我想在用户表示希望购买后不为他们保存消耗品,并且只在他们取消时才将其释放回消耗品池。拦截他们promise购买的时刻并检测是否仍然存在任何消耗品对于购买的整体竞争力非常重要(在我端为用户保存消耗品将允许用户无限期地坐在交易确认对话框屏幕上).有谁知道可以执行这种独特任务的编码策略吗?我曾尝试使用NSDefaultObserver,但运气不佳。

ios - CocoaPods 库中强大的 dispatch_queue_t

在可能使用iOS5.x/OSX10.7部署目标或更新版本构建的库中,我在正确定义dispatch_queue_t属性时遇到了问题。在大多数情况下,我可以按照建议解决它here:#ifOS_OBJECT_HAVE_OBJC_SUPPORT//==1notreallyneeded@property(nonatomic,strong)dispatch_queue_tloggerQueue;//AnObjective-Cobject#else@property(nonatomic,assign)dispatch_queue_tloggerQueue;//ACpointer#endif这在手动创

ios - Dispatch Instrument 不支持 iPhone5

当我尝试使用调度工具分析我的应用程序时,它说“此设备不支持此工具(调度)”。这意味着,基于设备或操作系统版本支持此功能?提前致谢。 最佳答案 基于Apple的文档,它仅适用于OSX。https://developer.apple.com/library/mac/documentation/AnalysisTools/Reference/Instruments_User_Reference/DispatchInstrument/DispatchInstrument.html 关于ios-D

ios - dispatch_once 对简单的 NSArray 有帮助吗?

dispatch_once+(NSArray*)titles{staticNSArray*_titles;staticdispatch_once_tonceToken;dispatch_once(&onceToken,^{_titles=@[@"YourMove",@"TheirMove",@"WonGames",@"LostGames",@"Options"];});return_titles;}简单+(NSArray*)titles{return@[@"YourMove",@"TheirMove",@"WonGames",@"LostGames",@"Options"];}哪个最快

iOS 在 dispatch_async 中更新 RLMObject

我想在dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0)中更新RLMObject并在dispatch_get_main_queue()中获取结果,但是在其他线程中更新的对象不会在主ui线程中更新。什么是解决方案?示例代码是:结果是:Ageofdogs1:9Ageofdogs2:9但应该是:Ageofdogs1:9Ageofdogs2:11//CreateastandaloneobjectDog*mydog=[[Dogalloc]init];//Set&readpropertiesmydog.name=@"Rex2";

iOS dispatch_get_global_queue 嵌套在 dispatch_get_main_queue 中

我继承了一个使用以下线程结构的代码库:dispatch_async(dispatch_get_main_queue(),{()->Voidindispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH,0),{()->Voidin//SeveralAFNetworkingServercalls...})})我对线程不是很有经验,所以我想弄清楚这个结构背后的可能意图是什么。为什么只抢到主队列就马上访问另一个队列?这是一种常见的做法吗?对于更多的上下文,此代码在UIApplicationDidBecomeAct

android - 伪元素 :after disapears on chrome mobile

我有一个包含导航元素的页面,我想将其隐藏在页面的左侧/右侧,并在我将鼠标悬停在图标上时显示。我在要隐藏的元素上使用:after伪元素创建了图标。该解决方案在经过测试的桌面浏览器上运行良好,但在chrome移动版上运行失败(即使桌面版本运行良好)。我在iOS和Android上测试过,没有一个能够显示:after伪元素。但是如果您碰巧点击了:after应该位于的位置,菜单就会显示出来。所以看起来这只是一个显示问题。我创建了thisjsfiddle显示问题。我添加了一些javascript只是因为它在真实页面上,但我认为这不是问题的原因。更奇怪的是,在iOS上,chrome和safari都可

ios - dispatch_group_t 或 dispatch_semaphore_t 等待多个异步请求完成

我需要等待几个请求完成才能继续下一个任务。dispatch_group_t&dispatch_semaphore_t在这里很像。所以我想知道哪个更好,或者这里没有太大区别。dispatch_group_tserviceGroup=dispatch_group_create();dispatch_group_enter(serviceGroup);//incompletionblockdispatch_group_leave(serviceGroup);//waitforallrequeststocompletedispatch_group_notify(serviceGroup,dis

ios - 为什么我们需要在另一个队列上使用 dispatch_sync() 而不是在 iOS GCD 中使用当前队列/线程

我读到dispatch_sync()会阻塞当前线程并且不会返回它,直到一个人想要同步执行的任务在dispatch_sync的串行队列上完成()需要继续努力。所以基本上它会停止当前线程并执行它的任务。如果是这样,为什么还要为这种任务设置另一个队列,为什么我们不能将任务放在当前线程上。毕竟,执行任务无论如何都会阻塞当前线程。既然dispatch_sync()不会打开另一个线程,那么为什么我们还要打开另一个队列来执行任务而不是在当前队列/线程上执行呢?希望我在这里清楚地描述我的困惑。我在这里比较在另一个队列上使用dispatch_sync()和直接使用当前线程/队列,所以我想知道在什么用例中