草庐IT

event-queue

全部标签

ios - 完成处理程序无法按预期与 Dispatch Group 和 Concurrent Queue 一起工作

我创建了一个Dispatch组,其中三个并发队列正在运行,然后通知组进行更新,这一切进展顺利,所有这些我都放在一个带有完成处理程序的函数中。现在我面临的问题是完成处理程序在队列执行完成之前被调用。我该如何解决这个问题,请指教?funcloadCompaniesFromSynch(_data:Data,completionHandler:@escaping(String)->()){varcompanyFile=""companies=[Company]()letbatchGroup=DispatchGroup()letqueue=DispatchQueue(label:"BatchQu

ios - "(NSSet *)touches"中 "event.allTouches"和 "touchesBegan:withEvent:"的区别

我需要移动、旋转和缩放UIImageView对象。在方法中...touchesBegan(NSSet*)toucheswithEvent:(UIEvent*)event我必须使用哪些触摸?(NSSet*)touches或event.allTouches换句话说,我的触摸在哪里? 最佳答案 作为参数传递的touches是您View中的触摸。event.allTouches包含事件的所有触摸,甚至是未在您的View中开始的触摸。不要犹豫readtheEventHandlingGuideforiOS在Apple的文档中,它用一些图片进行了

ios - "messages"和 "events"在 iOS 编程中是等价的吗?

我最近读到iOS是基于“消息”的。这类似于基于“事件”的行话吗?我可以从技术上向UIButton发送“触摸通知”并期望UIButton处理事件/消息,就好像我已经真的触摸了按钮?这就是幕后工作的方式吗?我只是想了解有多少消息和事件相似(或不相似)。 最佳答案 要回答您的问题,是的,您可以模拟类似的触摸通知。http://cocoawithlove.com/2008/10/synthesizing-touch-event-on-iphone.html然而,消息在任何方面都与事件不同。事件是发生的事情,而消息只是发送给对象的“命令”。这

ios - libdispatch.dylib 中的_dispatch_main_queue_callback_4CF$VARIANT$mp 和_dispatch_main_queue_callback_4CF$VARIANT$up 有什么区别?

查看多个iOS崩溃日志,我发现堆栈跟踪几乎相同,唯一的异常(exception)是来自libdispatch.dylib的上述行。我很好奇这种差异是否有意义(因此,这些崩溃应该分成不同的桶)或者它是否微不足道。谢谢。 最佳答案 对于所有实际用途而言,它都是相同的功能,您可以将它们视为相同的崩溃聚合,区别纯粹是内部实现细节。 关于ios-libdispatch.dylib中的_dispatch_main_queue_callback_4CF$VARIANT$mp和_dispatch_mai

ios - 使用带有委托(delegate)回调的 NSURLConnection 和 sendAsynchronousRequest :queue:completionHandler:? 之间有区别吗

我想了解使用–initWithRequest:delegate:和委托(delegate)方法和+sendAsynchronousRequest:queue:completionHandler:之间的区别。是否存在基于请求数量或任何其他标准的一些性能差异? 最佳答案 sendAsynchronousRequest:queue:completionHandler调用起来更容易。initWithRequest:delegate让您可以更好地控制缓存、重定向、下载大量或增量数据、取消请求等。

ios - dispatch_queue 未执行

我正在接受stanfordcs193passignment5。问题是当我将数据搜索到目标ViewController并使用调度队列在viewDidLoad方法中获取数据时。dispatch_async不会在目标ViewController中执行。这里是我的ViewControllerA和目标ViewController的代码。查看ControllerA代码-(void)viewDidLoad{[superviewDidLoad];if(!self.places){self.spinner.hidesWhenStopped=YES;self.spinner.center=self.tab

iphone - 用户界面滚动 : enable touch event even when it is scrolling

我应该如何配置我的UIScrollView,这样当scrollView处于滚动状态时,UIbutton的forControlEvents:UIControlStateHighlighted仍然可以被触发。现在它只是在触摸时停止滚动,而不是突出显示按钮,即使手指落在按钮上也是如此。当然,这是非常令人期待的,但如果有人能指导我在滚动时启用按钮的触摸事件,我将非常感激。 最佳答案 好吧,你可以尝试子类化UIScrollView并像这样覆盖hitTest方法:-(id)hitTest:(CGPoint)pointwithEvent:(UIE

ios - 使用“dispatch_async(dispatch_get_main_queue(),^{block}) 更新 UI

我想在NSURLSession的完成block中更新UI。最初的实现并没有立即更新UI。它可能在20秒后更新了UI。这是最初的实现。NSURLSessionDataTask*task=[self.sessiondataTaskWithRequest:requestcompletionHandler:^(NSData*data,NSURLResponse*response,NSError*error){NSDictionary*jsonDict=[NSJSONSerializationJSONObjectWithData:dataoptions:0error:nil];UILabel*l

ios - Objective-C 添加 UIControl Event TouchUpInside 事件到类

我知道可以将UIControlEventTouchUpInside事件添加到特定对象,但我如何才能将此事件添加到整个类?我已经使用ElementButton类创建了对象,我不想为每个单独的对象逐一添加事件,因为那样会产生很多不必要的代码。 最佳答案 您指的是iOS对称为目标-操作模式的东西的实现。Target-action仅适用于UIControl的子类,因此除非您的ElementButton是UIControl的子类,否则您不能使用UIControlEventTouchUpInside。如果它实际上是一个UIControl子类,除

ios - 如果我想让任务在后台运行, "dispatch_get_global_queue"队列如何工作?

在选择要在哪个队列上运行dispatch_async时,经常会提到dispatch_get_global_queue。这是一个将任务委托(delegate)给特定线程的特殊后台队列吗?是不是差不多是单例了?因此,如果我总是为我的dispatch_async调用使用该队列,该队列是否会变满并且必须等待事情完成才能开始另一个任务,或者它是否可以将其他任务分配给不同的线程?我想我有点困惑,因为当我为NSOperation选择队列时,我可以使用[NSOperationQueuemainQueue]选择主线程的队列>,这似乎是dispatch_get_main_queue的同义词,但我的印象是N