草庐IT

SMS-Thread

全部标签

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 - : This application is modifying the autolayout engine from a background thread如何解决

当代码的某些部分正在从主线程以外的其他线程更改UI项目时,此错误将记录到控制台。但我如何才能找到它在哪里执行此操作? 最佳答案 “此应用程序正在从后台线程修改自动布局引擎”的主要问题是,它似乎在实际问题发生后很长时间才被记录下来,这使得故障排除变得非常困难。我通过创建三个符号断点设法解决了这个问题。调试>断点>创建符号断点...断点1:符号:-[UIViewsetNeedsLayout]条件:!(BOOL)[NSThreadisMainThread]断点2:符号:-[UIViewlayoutIfNeeded]条件:!(BOOL)[N

iOS : Background Thread Exceptions Not Crashing

我没有找到符合我经验的文档。我想要的是一种在后台线程中处理未捕获异常的好方法。这种“方式”应该让应用程序崩溃,但在崩溃之前执行一些非常基本的操作(例如,将值保存到UserDefaults以便下次启动时可以检查它;加上日志记录)。在主线程上,我刚刚设置了一个uncaughtExceptionHanlder并且工作正常。但是,在后台线程上-作为NSOperationQueue上的NSOperation执行-发生任何异常但不退出应用程序:崩溃。该应用程序继续在损坏的状态下运行。但是,线程编程指南指出:SettingUpanExceptionHandlerIfyourapplicationca

ios - 如何在生产应用程序中找到 Crashed : com. apple.main-thread 的根本原因?

我有一份来自Crashlytics的报告:Thread:Crashed:com.apple.main-thread0libobjc.A.dylib0x000000019503fbd0objc_msgSend+161CoreFoundation0x00000001836e5458CFRelease+5242CoreFoundation0x00000001836f1a18-[__NSArrayMdealloc]+1523libobjc.A.dylib0x0000000195045724(anonymousnamespace)::AutoreleasePoolPage::pop(void*)

android - SMPP 中串联 SMS 的最大长度是多少?

我正在研究SMSC服务,它应该加入消息(如果它找到PDUheader),然后将该消息传递给使用不同协议(protocol)(不仅仅是SMPP)的下一个服务来实际传递消息。现在,我对消息的最大长度有点疑惑。我一直在搜索,我唯一找到的是this,他们提到:Note:Intheoryitispossibletoutilize255messages(39,015characters)foraConcatenatedSMS.However,3SMS(or459characters),isgenerallyconsideredtobethelongestlengthmessagethatwillb

ios - Xcode 线程 1 : Is it always main UI thread?

Xcode在调试导航器中显示线程。它们被编号:线程1、线程2等我注意到我总是在线程1中。假设它是主UI线程是否正确?我使用像Facebook和AFNetworking这样的库/SDK,它们有回调和委托(delegate)。但线程安全性并不总是得到正确记录。 最佳答案 我不记得是哪个,但在一个WWDC视频中(我想是从2011年开始),我听到一位工程师提到UIKit内部假设线程1是UI。所以是的,这不是“简单的”最佳实践,我认为存在具体的技术依赖性。就具体文档而言,我不容易找到“官方”声明;但我认为这是因为它比这更基础。比如这种随便提到

ios - 枚举键和对象使用 block : can I be sure it is called on the same thread?

最近我在使用enumerateKeysAndObjectsUsingBlock:,今天当我的一位同事指出可以从单独的线程调用此枚举方法并且我的代码可能无法按预期工作时,我犹豫了。他甚至建议我应该使用快速枚举。问题是我真的很喜欢enumerateKeysAndObjectsUsingBlock:并且不喜欢快速枚举,因为它在字典方面的性质。我的方法如下所示-(NSArray*)someMethod{__blockNSMutableArray*myArray=[NSMutableArrayarray];[self.myDictionaryenumerateKeysAndObjectsUsin

iOS AVPlayer replaceCurrentItemWithPlayerItem :nil block UI Thread

似乎apireplaceCurrentItemWithPlayerItem:会卡住主线程几秒钟,我知道替换项目需要新项目的信息,这可能需要一些时间来预加载。但是问题来了,为什么用nilitemobject替换CurrentItemWithPlayerItem:也会卡住主线程?我碰巧有时需要超过5秒来替换一个nilplayerItem。我想知道我该怎么做才能避免这个问题。感谢您的任何建议! 最佳答案 当我使用UICollectionView通过ALAssetLibrary显示和预览本地照片库中的视频时,我遇到了类似的阻塞UI线程问题。