当我使用一个单例,调用一个类型对象的时候,程序出现了崩溃

  具体报错如下,希望可以得到解决:

2014-06-28 08:57:46.508 XYZ[707:1403] *** Assertion failure in -[UIKeyboardTaskQueue waitUntilAllTasksAreFinished], /SourceCache/UIKit_Sim/UIKit-2935.137/Keyboard/UIKeyboardTaskQueue.m:368

2014-06-28 08:57:46.509 XYZ[707:1403] *** Terminating app due to uncaught exception ‘NSInternalInconsistencyException‘, reason: ‘-[UIKeyboardTaskQueue waitUntilAllTasksAreFinished] may only be called from the main thread.‘

*** First throw call stack:

(

0   CoreFoundation                      0x0266e1e4 __exceptionPreprocess + 180

1   libobjc.A.dylib                     0x023ed8e5 objc_exception_throw + 44

2   CoreFoundation                      0x0266e048 +[NSException raise:format:arguments:] + 136

3   Foundation                          0x01fcd4de -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 116

4   UIKit                               0x01800166 -[UIKeyboardTaskQueue waitUntilAllTasksAreFinished] + 167

5   UIKit                               0x0128ff11 -[UIKeyboardImpl setDelegate:force:] + 442

6   UIKit                               0x0128fd52 -[UIKeyboardImpl setDelegate:] + 60

7   UIKit                               0x01556dc5 -[UIPeripheralHost(UIKitInternal) _reloadInputViewsForResponder:] + 956

8   UIKit                               0x01560a0e -[UIPeripheralHost(UIKitInternal) _preserveInputViewsWithId:animated:] + 550

9   UIKit                               0x011d7940 -[UIViewController presentViewController:withTransition:completion:] + 3317

10  UIKit                               0x10f9078f -[UIViewControllerAccessibility(SafeCategory) presentViewController:withTransition:completion:] + 71

11  UIKit                               0x011d8aef -[UIViewController presentViewController:animated:completion:] + 130

12  XYZ                                 0x0007e613 __33-[LoginViewController UserLogin:]_block_invoke + 483

13  Foundation                          0x02108ac5 __67+[NSURLConnection sendAsynchronousRequest:queue:completionHandler:]_block_invoke_2 + 151

14  Foundation                          0x02068d65 -[NSBlockOperation main] + 88

15  Foundation                          0x020c1c79 -[__NSOperationInternal _start:] + 671

16  Foundation                          0x0203e9c8 -[NSOperation start] + 83

17  Foundation                          0x020c3f44 __NSOQSchedule_f + 62

18  libdispatch.dylib                   0x030854d0 _dispatch_client_callout + 14

19  libdispatch.dylib                   0x03071fe0 _dispatch_async_redirect_invoke + 202

20  libdispatch.dylib                   0x030854d0 _dispatch_client_callout + 14

21  libdispatch.dylib                   0x03073eb7 _dispatch_root_queue_drain + 291

22  libdispatch.dylib                   0x03074127 _dispatch_worker_thread2 + 39

23  libsystem_pthread.dylib             0x033b4dab _pthread_wqthread + 336

24  libsystem_pthread.dylib             0x033b8cce start_wqthread + 30

)

libc++abi.dylib: terminating with uncaught exception of type NSException

当我使用一个单例,调用一个类型对象的时候,程序出现了崩溃

时间: 2024-10-29 19:06:27

当我使用一个单例,调用一个类型对象的时候,程序出现了崩溃的相关文章

创建一个单例类

关于单例的概念此处不做表述,直接上代码演示如何创建一个单例类. 1 #import <Foundation/Foundation.h> 2 3 @interface MJDemo : NSObject 4 5 + (instancetype)sharedDemo; 6 7 @end 8 9 10 #import "MJDemo.h" 11 12 @implementation MJDemo 13 14 //在iOS中所有对象分配内存空间,最终都会调用allocWithZon

写一个单例(Singleton),并说明单例的目的和好处

单例的目的:保证一个类只有单一的实例,也就是说你无法通过new来创建这个类的一个新实例. 单例的好处:当一个对象在程序内部只能有一个实例的时候,它可以保证我们不会重复创建,而是始终指向同一个对象. Singleton通过将构造方法限定为private避免了类在外部被实例化,在同一个虚拟机范围内,Singleton的唯一实例只能通过getInstance()方法访问. 第一种:在声明变量时实例化(也叫饿汉式单例模式),代码如下: public class Singleton { private s

struts action不在是一个单例类

在servlet中,servlet类是一个单例,在servlet中的成员变量,将会被所有请求共享,同时也有可能存在线程安全问题,如有一个成员变量num,每次方法后市的num自增 1 package action; 2 3 import java.io.IOException; 4 import javax.servlet.ServletException; 5 import javax.servlet.http.HttpServlet; 6 import javax.servlet.http.H

IOS 宏定义一个单例

有时候是不是因为频繁地创建一个单例对象而头疼,一种方式要写好多遍?当然你可以用OC语言进行封装.但下面将介绍一种由C语言进行的封装.只要实现下面的方法,以后建单例对象只要二句话. 1.新建一个.h文件,在文件中实现以下方法: 1 / .h 2 #define singleton_interface(class) + (instancetype)shared##class; 3 4 // .m 5 #define singleton_implementation(class) 6 static c

SpringMVC框架Controller类就是一个单例类

Springmvc框架Controller类就是一个单例类,所以他在速度和性能上是比较优越的. 这里需要特别注意的一点是:如果一个类已经是单例类了,你就不要在手动的创建类的对象了,这种做法是不可取的,会对系统造成较大的开销.最致命的一点就是,在并发环境下,会导致查询出来的数据错乱. 一般情况下,controller中只会有service对象,因为service是接口,不会存在成员变量一说,接口嘛,只会有常量和方法,不会存在资源的抢夺问题. 原文地址:https://www.cnblogs.com

More Effective C++----(12)理解&quot;抛出一个异常&quot;与&quot;传递一个参数&quot;或&quot;调用一个虚函数&quot;间的差异

Item M12:理解"抛出一个异常"与"传递一个参数"或"调用一个虚函数"间的差异 从语法上看,在函数里声明参数与在catch子句中声明参数几乎没有什么差别: class Widget { ... }; //一个类,具体是什么类 // 在这里并不重要 void f1(Widget w); // 一些函数,其参数分别为 void f2(Widget& w); // Widget, Widget&,或 void f3(const W

iOS开发:XCTest单元测试(附上一个单例的测试代码)

测试驱动开发并不是一个很新鲜的概念了.在我最开始学习程序编写时,最喜欢干的事情就是编写一段代码,然后运行观察结果是否正确.我所学习第一门语言是c语言,用的最多的是在算法设计上,那时候最常做的事情就是编写了一段代码,如何编译运行,查看结果是否正确,很多时候,还得自己想很多特殊的(比如说零值,边界值)测试数据来检测所写代码.算法是否正确.那个时候,感觉还好,比较输出只是只是控制台的一个简单的数字或者字符.在学习iOS开发中,很多时候也是要测试的,这种输出是必须在点击一系列按钮之后才能在屏幕上显示出来

Swift创建一个单例实例

假设一个ZLAnimal类. 我需要创建ta的时候保持单例 在oc中的做法 static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ _instance = [[ZLAnimal alloc] init]; }); 在swift中的做法其实也类似,这里新建一个类,ZLAnimal类,提供快捷方法 class ZLAnimal: NSObject { class var sharedManager: ZLAnimal { stru

关于java写一个单例类(面试手写题)

package com.shundong.javacore; /** * java写一个简单的单例类 * @author shundong * */ class Singleton { //使用一个类变量来缓存曾经创建的实例 private static Singleton instance; //对构造进行隐藏(private) private Singleton(){} /** * 提供一个静态方法 * 该方法加入了自定义控制 保证只产生一个Singleton对象 * @return 返回S