草庐IT

dispatch_main_queue_callback

全部标签

iOS My APP crash in main 怎么找错误?

0libsystem_kernel.dylib__pthread_kill+81libsystem_pthread.dylibpthread_kill+1122libsystem_c.dylibabort+1403libc++abi.dylib__cxa_bad_cast+04libc++abi.dylibstd::__terminate(void(*)())+445libc++abi.dylib__cxxabiv1::exception_cleanup_func(_Unwind_Reason_Code,_Unwind_Exception*)6libobjc.A.dylib_objc_

iphone - 防止在 viewDidLoad 中创建多个 dispatch_queue_create

有一个加载的View和一个创建的串行调度队列,在后台加载大量内容并且效果很好。问题是,当我来回导航到该View时,会再次创建一个新队列,然后我有多个东西在做完全相同的工作。-(void)viewDidLoad{dispatch_queue_tmyQueue=dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW,0);dispatch_async(myQueue,^{//functioncalltoahelperoutsidethescopeofthisview});}如何防止这种情况发生?编辑:没有必要创建我自己的队列,所以我更改了

objective-c - Main.1 输出文件在 XCode 中做什么?

我制作了一个名为“Stack”的示例项目,但意识到我需要更多数据结构,所以我重命名了所有内容-项目,在XCode中制作了2个新文件夹及其匹配组,修改了目标构建路径以查找取而代之的是“Main/DataStructures-Prefix.pch”。但是有一个文件我不明白->早些时候,我的文件夹中有一个“Stack.1”,所以我只是将它重命名为“Main.1”而且它似乎影响构建过程,但我很怀疑。这个“Main.1”是做什么的?它是像C/C++中的链接中间文件吗?这是一张照片: 最佳答案 “Main.1”是为您的程序创建“手册页”(即在线

ios - dispatch_after() 弹出时间为零

是否有可能使这个“更清晰”或“更好”?欢迎任何解决方案,甚至认为我得到了正确答案。问题是popTime==0的dispatch_after()仍然给主线程时间来进行一些UI更改。以下代码有时会从后台线程调用。-(void)methodCalledFromSomeThread{if(delayInSeconds){dispatch_time_tpopTime=dispatch_time(DISPATCH_TIME_NOW,delayInSeconds*NSEC_PER_SEC);dispatch_after(popTime,dispatch_get_main_queue(),^(void

ios - Objective-C指针类型 'dispatch_source_t'的隐式转换

我尝试学习如何使用GCD(THEDOC),并从苹果文档中编写其中一些代码。但它不能在Xcode中编译。不确定我应该如何修复它。-(void)viewDidLoad{[superviewDidLoad];dispatch_source_type_ttimer=dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER,0,0,dispatch_get_main_queue());if(timer){dispatch_source_set_timer(timer,dispatch_walltime(NULL,0),30ull*NSEC_PER_SEC

ios - 使用 dispatch_async NSURLSession 调用的结果更新 UILabel

几周前我开始了Objective-C编程,所以我对所有这些部分如何组合在一起以及它们发生的顺序的理解仍然让我感到困惑。我正在尝试使用NSURLSession对我的一个应用程序进行JSONAPI调用。这一切都完美无缺,但我想用返回的一段数据更新标签,每当我查看/尝试更新标签时,我都会得到null。我发现的一些与我的问题类似的SO帖子包括:this,this,this,和this.来自RubyonRails世界,我根本不需要处理异步概念,但我知道我已经很接近了。这里是有问题的相关代码片段:if(!jsonError){NSDictionary*skillBuildData=[NSJSONS

ios - 如果操作未完成,iPhone 应用程序会因 dispatch_async 而崩溃

在我发布的iPhone应用程序中,我使用了dispatch_asyncblock,没有出现任何问题。该应用检查网站的价格更新,解析HTML,相应地更新核心数据模型,然后刷新正在查看的表格。但是,在我最新的应用程序中,我发现我可以通过在价格更新过程运行时切换出应用程序来使应用程序崩溃。第一次和第二次使用之间的区别在我看来只是我从表的refreshController调用调度block(即tableViewController现在是内置的下拉刷新机制),现在是iOS7。任何人都可以向我建议如何在已知条件下优雅地中止dispatch_async,例如用户希望停止进程,或者如果他们像这样切换应

ios - main.m 文件中缺少方法声明的上下文?

我正在尝试在main.m文件中声明和定义objective-c中的方法/函数。我在主文件中而不是某些类实现中的原因是因为我选择了“命令行Mac项目”,因为我正在为一个简单的文字处理练习这样做。我已经声明并定义了方法。-(float)findAverageWordsInFile(NSString*)pathToFile;然后我在main函数下定义/实现我的方法并尝试在main中调用它。在objective-c中创建方法肯定有一些我遗漏的特质。在谷歌上搜索了一段时间后,我似乎无法弄明白。 最佳答案 Objective-C方法只能在Obj

c++ - 为什么我需要在 main 里面写 std::ios::sync_with_stdio?

如果我写:#includeusingnamespacestd;main(){ios::sync_with_stdio(false);cout然后,程序编译正确,但如果我写:#includeusingnamespacestd;ios::sync_with_stdio(false);main(){cout然后GCC产生以下错误:error:specializingmember'std::basic_ios::sync_with_stdio'requires'template'syntaxios::sync_with_stdio(false);这个错误是什么意思,如何纠正(如果可能)?

ios - dispatch_async 什么时候真正派发?

假设我有以下代码:dispatch_async(dispatch_get_main_queue()){myFunction()}这表示异步调用调用myFunction的block。假设我在我的主队列中调用此代码,该队列也是为dispatch_async调用指定的队列。在这种情况下,这个block实际上是什么时候被调用的?我当前的队列是否被抢占并且block立即运行,或者当前调用堆栈是否展开并且block在下一个事件循环中被调用?或者是其他东西? 最佳答案 Whendoesthisblockactuallygetcalledinthi