草庐IT

tag-dispatching

全部标签

ios - 必须分派(dispatch)到 iOS 11 中的主线程

在iOS11之前,我能够动态地重新加载TableView数据,而无需将重新加载分派(dispatch)到主线程。但是,现在我正在安装了iOS11的设备上进行测试,似乎我必须将每个UI更新分派(dispatch)到主线程才能使其正常工作。否则我最终会得到空的UI元素。即具有所有行但没有标签的TableView,或没有标题的按钮等。有谁知道iOS11中发生了什么变化要求这样做?有办法关闭它吗? 最佳答案 从远古时代开始,Apple就强调所有与UI元素的交互必须发生在主/GUI线程上。不听从这个建议会导致奇怪的行为:有时它会工作正常,其他

ios - 在 'tag' 类型的对象上找不到属性 'const _strong id'

我将tag放在我的UILabel的StoryBoard属性检查器上,我的ViewController.m上有这段代码:for(idsubviewin[[selfview]subviews]){if(subview.tag==1){[subviewsetFont:[UIFontfontWithName:@"Raleway-ExtraLight"size:12]];}elseif(subview.tag==2){[subviewsetFont:[UIFontfontWithName:@"Raleway-ExtraLight"size:28]];}}当我运行我的代码时,我得到了这个错误:Pr

ios - dispatch_async 用于从 url 获取许多图像

我想从不同的url获取许多图像并将其设置为图像的按钮。我试图像上面显示的那样执行此操作,但没有任何反应。当我访问这个ViewController时,它没有任何按钮图像,也没有显示横幅View...。dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),^(void){NSURL*url=[NSURLURLWithString:[pictureUrlobjectAtIndex:i]];NSData*data=[[NSDataalloc]initWithContentsOfURL:url];d

iOS - 调用 dispatch_async 时没有堆栈跟踪

我已经创建了一些示例代码来演示我的问题。-(void)test{void(^handler)(void)=^{NSArray*test=[NSArrayarray];[testobjectAtIndex:5];};handler=[handlercopy];dispatch_async(dispatch_get_main_queue(),handler);}当我调用测试方法时,我没有得到堆栈跟踪。调试器停在main.m并突出显示此行intretVal=UIApplicationMain(argc,argv,nil,NSStringFromClass([FantasyUniversalA

ios - 带有 @tags 的 UITextView 和视觉效果背后的隐藏信息

我正在尝试实现与Facebook的帖子编辑器相同的功能,您可以在其中@tag人。我能够使用NSMutableAttributedString和NSRegularExpression轻松实现着色。用户发布文本后,我需要发送更多信息。用户可以从自动提示弹出窗口中选择人(已经实现,获取用户的姓名和数据)。只要我想保留@people格式,一切都正常,但我做不到。我遇到的问题是我想向用户显示@someone,但我需要在后台保留更多信息,例如此人的userId以便稍后将其传递给后端。看看Facebook是怎么做到的——他们甚至不使用@符号,他们只是为名字添加一些背景颜色。例如:HereItag@m

ios - 使用 GCD 复制大文件 - Dispatch IO 消耗大量内存

我正在将大型文件复制操作从NSStream转换为使用GCD的调度IO实现。当将两个1GB的文件一起复制到一个2GB的文件中时,应用程序使用GCD会消耗2GB的内存。NSStream实现仅占用50MB。在Instruments中,我可以看到start_wqthread调用分配了1MBblock,正如我为调度IO高水位线请求的block大小,但在写入输出流后没有被释放,他们四处闲逛。缓冲区写入输出流后如何释放缓冲区?如果我在Xcode中创建一个全新的OSXCocoa应用程序并将以下代码粘贴到applicationDidFinishLaunching:方法中,它将消耗500-2000MB的内

objective-c - 分派(dispatch)到主队列总是失败

我正在尝试通过iOS上的GCD将一些代码分派(dispatch)到主队列,但即使是最简单的测试也总是失败。最后归结为:staticconstintTICK_INTERVAL=1;#pragmaUIApplicationDelegateimplementation-(void)doTick{if(![NSThreadisMainThread]){NSLog(@"Tryingtodispatch...");dispatch_sync(dispatch_get_main_queue(),^{NSLog(@"test...");});}}-(void)startUpdate{dispatch_

ios - EXC_BAD_ACCESS 在 dispatch_async 中使用 "freed"self 时

我有一个使用iOS7中新的SpriteKit编写的游戏。我有一个自定义的SKSpriteNode,它可以获取并显示Facebook个人资料图片。但是,由于加载图片可能需要一些时间。我尝试在初始化节点时在后台加载图片,并仅在加载图片时显示它。这是我写的代码片段:dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),^{//CodetoloadFacebookProfilepicture//...SKSpriteNode*fbFrame=[SKSpriteNodespriteNodeWithT

ios - dispatch_after 会阻塞主线程吗?

我正在设置一个计时器,以便在一秒钟后为我的键盘扩展重置一个值。问题是我觉得下面的调用正在拖延我的UI:dispatch_after(dispatch_time(DISPATCH_TIME_NOW,1*NSEC_PER_SEC),dispatch_get_main_queue(),^{[selfresetDoubleTapBool];})有没有一种异步的方式来做到这一点,或者一般来说更好的方式?谢谢! 最佳答案 dispatch_after()调用本身不会阻塞。在指定的时间(或之后不久),block将被提交到主队列。提交它不会阻塞主线

cocoa-touch - 双核 iPad (A5) = Grand Central Dispatch?

iPhoneSDK是否支持GrandCentralDispatch,使我们能够利用新iPadCPU的多核优势? 最佳答案 是的,从iOS4.0开始,iOS就支持GCD。普通线程API(pthread和NSThread)从iOS2.0开始可用 关于cocoa-touch-双核iPad(A5)=GrandCentralDispatch?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/