1

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

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

根除对写入图形内存的函数的所有调用应该相当容易。但是,为了安全起见,我想在某些子例程中检查我在哪个线程上(主线程与否)(因此该错误不会再次潜入)。

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

4

1 回答 1

2

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

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

用这段代码。

[NSThread isMainThread]

回答你的问题

于 2012-12-06T00:41:04.920 回答