确定是否在“触摸”回调线程 ios 上



我正在编写一些iOS代码,我注意到当我在"触摸事件"回调中写入顶点数组使用的内存时,我偶尔会出现错误(内存访问冲突)。

我相信触摸事件

来自一个单独的线程,因此,如果触摸事件导致顶点数组发生变化,我将需要排队一条消息,该消息将由主线程(执行所有渲染)拾取,以便对顶点数组进行所需的更改。

根除

对写入图形内存的函数的所有调用应该相当容易。 但是,为了安全起见,我想检查我在某些子例程中的哪个线程(主线程与否)(这样错误就不会再次阴险地爬回来)。

iOS中有没有办法以编程方式检查我在哪个线程上(主线程与否)?

以下代码片段将记录您是否在主线程上。

NSLog(@"[%@ %@] Is Main Thread? %@",NSStringFromClass([self class]), NSStringFromSelector(_cmd),[NSThread isMainThread]?@"YES":@"NO"); 

用这段代码。

[NSThread isMainThread]

回答您的问题

最新更新