草庐IT

needs_thread_safety

全部标签

ios - ARKit 模板 Xcode 项目 Main Thread Checker 日志控制台

我刚刚启动了一个新的XcodeARKit项目并在物理设备上运行它,但在控制台中我得到了这个输出:MainThreadChecker:UIAPIcalledonabackgroundthread:-[UIApplicationapplicationState]PID:4865,TID:2042694,Threadname:com.apple.CoreMotion.MotionThread,Queuename:com.apple.root.default-qos.overcommit,QoS:0Backtrace:4libobjc.A.dylib0x00000001d7477894+565

ios - 崩溃 : AVAudioSession Notify Thread in iOS

我收到AudioToolBox中发生的EXC_BAD_ACCESS崩溃。如何正确处理中断?请查看crashlytics屏幕截图以获取更多信息。 最佳答案 当我接到电话/faceTime通话时,我的音频流播放器崩溃了。它实际上是非ARC的较旧类(class)。只需为流类添加一个InterruptionNotificationObserver,如果流类正在播放,我们需要在中断开始时暂停播放器实例。[[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(

ios - NSURLConnection 和 sendAsynchronousRequest :queue:completionHandler: - does the completion block run in the main thread

如果我将NSURLConnection与sendAsynchronousRequest:queue:completionHandler:一起使用,我是否需要在完成处理程序中采取任何特殊的预防措施?具体来说,通过NSURLConnection直接异步发送是否与使用dispatch_async相同/相似,因为完成block需要返回主线程才能与UI交互?例如:在使用dispatch_async与UI交互(可能是用词不当)后,应用必须使用performSelectorOnMainThread。sendAsynchronousRequest:queue:completionHandler:是否需

ios 7 dequeueReusableCellWithIdentifier :forIndexPath method - does it need registerClass method

我正在使用ios7。快速提问。我有一个工作程序,它使用dequeueReusableCellWithIdentifier:forIndexPath来显示具有两个不同原型(prototype)的单元格。我从未使用过UITableViewregisterClass方法。这是否意味着我没有重复使用细胞?我的想法是情况并非如此(因为我之前在此应用程序中修复了与保留先前状态的单元格相关的错误)。如果我现在真的使用registerClass(在tableVieW的viewDidLoad中),我的数据不会显示-知道为什么吗?谢谢!更新我在viewDidLoad中添加registerClass代码如下

ios - 对于 iOS,Concurrency Programming Guide 和 Threading Programming Guide 有什么区别?

我的问题背后的原因是我正在为iPhone编写一个音频单元托管应用程序,我需要同步来自音频线程(写入内存)和GUI线程(从内存读取)的内存访问。在寻找有关该主题的指南时,我发现苹果提供了两个iOS并行编程指南(类似的指南可用于OSX):ThreadingProgrammingGuideConcurrencyProgrammingGuide关于iOS,我是并行编程的新手;因此,我不清楚我需要阅读哪些指南,或者它们是否涵盖相同的问题。 最佳答案 并发编程指南将是您在调度API(又名GCD)和NSOperation方面的速成类(class)

ios - FBSession : should only be used from a single thread

我正在使用facebooksdk3.5开发一个用于在ios中发布FB墙的应用程序。我正在使用两个View。第一个是启动画面,第二个是facebook登录View。当我激活这两个View时,我得到一个线程并显示错误,2013-05-1717:07:59.115[415:12503]*Assertionfailurein-[FBSessioncheckThreadAffinity],/Users/chrisp/tmp/sdk/ios-sdk/src/FBSession.m:15712013-05-1717:07:59.127[415:12503]*由于未捕获的异常“NSInternalIn

iOS 9 键盘 : This application is modifying the autolayout engine from a background thread, 可能导致引擎损坏和奇怪的崩溃

当我从嵌入在webView中的TextView启动第三方键盘时,有时会导致应用程序崩溃。应用崩溃时可以找到一些证据:总是有如下警告,但当键盘显示成功时,也可能会显示警告。""Sep2516:44:09iPhone6-goldenXXX[2916]:此应用程序正在从后台线程修改自动布局引擎,这可能导致引擎损坏和奇怪的崩溃。这将在未来的版本中导致异常。""Stack:(0CoreFoundation0x00000001836f4f74+1481libobjc.A.dylib0x00000001982e7f80objc_exception_throw+562CoreFoundation0x0

iOS cordova 插件 : How to send plugin result from ios plugin to javascript in background thread

我有一个扩展CDVPlugin的插件类。该插件将从HTML端单击按钮调用。之后我使用UIImagePickerController拍了两张照片。然后我尝试使用pluginresult将这些图像发送到javascript回调函数。在这里,当我尝试一次性发送两张图片时,UI卡住了一段时间。所以,我想在后台线程中发送结果。而且我应该从javascript回调函数接收到它。有人做过吗?有什么方法可以实现这一点,使UI导航更加流畅.... 最佳答案 像这样:-(void)myPluginMethod:(CDVInvokedUrlCommand

ios - 使用 mergeChangesFromContextDidSaveNotification :saveNotification I am not getting changes show up in main thread

我正在使用后台线程执行一项长时间运行的任务,包括从服务中提取数据并通过CoreData将记录插入数据库。正如这里的许多答案所建议的那样,我正在观察NSManagedObjectContextDidSaveNotification通知。我正在使用这两种方法。在mergeChanges方法中,我在通知对象中看到了我的插入,但在这两种方法完成后,我的主MOC仅显示后台线程之前的更改。为什么它不反射(reflect)来自后台线程的新更改。我错过了什么?-(void)registerContextDidSaveNotificationForManagedObjectContext:(NSMana

ios - Build active architecture only for CocoaPods needs to NO in Xcode

在我们使用cocoapods的旧项目中,自Xcode6以来存在一个奇怪的问题:在为iphone(不是模拟器)编译时,在构建时找不到一些随机的cocoapods(例如Flurry)。在Xcode5中,一切都很好。这是在Cocoapods目标中使用When'Buildactivearchitectureonly=YES'。当“仅构建事件架构=否”时,一切都按预期工作。这是为什么?我已经重建了几次cocoapods,但它保持不变。 最佳答案 附加到您的Podfile:post_installdo|installer_representat