草庐IT

EVENT_DISPATCH

全部标签

ios - NSNotification 与 dispatch_get_main_queue

关于thisquestion我想知道关于何时使用NSNotification(在主线程中有观察者)与使用GCD将工作从后台线程分派(dispatch)到主线程,是否有任何普遍接受的逻辑?似乎使用通知观察器设置,您必须记住在View卸载时拆除观察器,但随后您可靠地忽略了通知,因为将作业分派(dispatch)到主线程可能会导致在以下情况下执行blockView已卸载。因此,在我看来,通知应该提供改进的应用程序稳定性。根据我所读的GCD,我假设调度选项提供了更好的性能?更新:我知道通知和调度可以一起愉快地工作,在某些情况下,应该一起使用。我试图找出是否存在应该/不应该使用的特定情况。一个例

ios - NSNotification 与 dispatch_get_main_queue

关于thisquestion我想知道关于何时使用NSNotification(在主线程中有观察者)与使用GCD将工作从后台线程分派(dispatch)到主线程,是否有任何普遍接受的逻辑?似乎使用通知观察器设置,您必须记住在View卸载时拆除观察器,但随后您可靠地忽略了通知,因为将作业分派(dispatch)到主线程可能会导致在以下情况下执行blockView已卸载。因此,在我看来,通知应该提供改进的应用程序稳定性。根据我所读的GCD,我假设调度选项提供了更好的性能?更新:我知道通知和调度可以一起愉快地工作,在某些情况下,应该一起使用。我试图找出是否存在应该/不应该使用的特定情况。一个例

ios - dispatch_sync 总是在主线程上调度一个 block

我正在使用dispatch_sync执行一个block,并且该block已正确执行。但是这个block是在主线程上执行的。根据Apple文档:Serialqueues(alsoknownasprivatedispatchqueues)executeonetaskatatimeintheorderinwhichtheyareaddedtothequeue.Thecurrentlyexecutingtaskrunsonadistinctthread(whichcanvaryfromtasktotask)thatismanagedbythedispatchqueue.这意味着(或者我的理解)

ios - dispatch_sync 总是在主线程上调度一个 block

我正在使用dispatch_sync执行一个block,并且该block已正确执行。但是这个block是在主线程上执行的。根据Apple文档:Serialqueues(alsoknownasprivatedispatchqueues)executeonetaskatatimeintheorderinwhichtheyareaddedtothequeue.Thecurrentlyexecutingtaskrunsonadistinctthread(whichcanvaryfromtasktotask)thatismanagedbythedispatchqueue.这意味着(或者我的理解)

ios - Firebase 和谷歌标签管理器 : <FIRAnalytics/WARNING> Attempted to log nil event

我在cocoapods上集成了Firebase和GTM:pod'Firebase/Core'pod'GoogleTagManager','~>5.0'所用版本的Podfile.lock:Firebase/Core(3.12.0):FirebaseAnalytics(=3.6.0)FirebaseCore(=3.4.7)FirebaseAnalytics(3.6.0):FirebaseCore(~>3.4)FirebaseInstanceID(~>1.0)GoogleInterchangeUtilities(~>1.2)GoogleSymbolUtilities(~>1.1)Google

ios - Firebase 和谷歌标签管理器 : <FIRAnalytics/WARNING> Attempted to log nil event

我在cocoapods上集成了Firebase和GTM:pod'Firebase/Core'pod'GoogleTagManager','~>5.0'所用版本的Podfile.lock:Firebase/Core(3.12.0):FirebaseAnalytics(=3.6.0)FirebaseCore(=3.4.7)FirebaseAnalytics(3.6.0):FirebaseCore(~>3.4)FirebaseInstanceID(~>1.0)GoogleInterchangeUtilities(~>1.2)GoogleSymbolUtilities(~>1.1)Google

ios - 同步块(synchronized block)和 dispatch_async

当我们在block中调用dispatch_async()时,使用@synchronized()的IOS中的锁会发生什么。例如:idmyID-(void)foobar{@synchronized(myID){dispatch_async(){//dostuffwithmyID};}}锁在dispatch_async调用中是否仍然有效?或者更重要的是,在dispatch_async()中使用另一个@synchronized()调用有什么缺点吗? 最佳答案 假设您正在尝试同步与后台队列中的此myID对象的交互,您希望它以相反的方式进行,即

ios - 同步块(synchronized block)和 dispatch_async

当我们在block中调用dispatch_async()时,使用@synchronized()的IOS中的锁会发生什么。例如:idmyID-(void)foobar{@synchronized(myID){dispatch_async(){//dostuffwithmyID};}}锁在dispatch_async调用中是否仍然有效?或者更重要的是,在dispatch_async()中使用另一个@synchronized()调用有什么缺点吗? 最佳答案 假设您正在尝试同步与后台队列中的此myID对象的交互,您希望它以相反的方式进行,即

ios - 防止 dispatch_after() 后台任务被执行

这是我的问题。当我的应用程序进入后台时,我希望它在一段时间后执行一个功能。这就是我所做的:-(void)applicationDidEnterBackground:(UIApplication*)application{isRunningInBackground=YES;taskIdentifier=[[UIApplicationsharedApplication]beginBackgroundTaskWithExpirationHandler:nil];int64_tdelayInSeconds=30;dispatch_time_tpopTime=dispatch_time(DISP

ios - 防止 dispatch_after() 后台任务被执行

这是我的问题。当我的应用程序进入后台时,我希望它在一段时间后执行一个功能。这就是我所做的:-(void)applicationDidEnterBackground:(UIApplication*)application{isRunningInBackground=YES;taskIdentifier=[[UIApplicationsharedApplication]beginBackgroundTaskWithExpirationHandler:nil];int64_tdelayInSeconds=30;dispatch_time_tpopTime=dispatch_time(DISP