无论如何都要[NSString stringWithFormat:@"%p", myVar]用新的快速语言模拟代码?
例如:
let str = "A String"
println(" str value \(str) has address: ?")
Run Code Online (Sandbox Code Playgroud) 有没有办法打印出当前正在执行当前方法的线程ID?
(Objective-c please)
有没有办法获得当前正在运行的线程的任何类型的线程标识符,而无需求助于Objective-C的NSThread.
我正在改进我们的自定义调试跟踪系统,以正确处理多个线程.对于每行跟踪输出,我想打印一个线程ID或一个线程名称.线程以各种方式实例化,例如使用NSOperationQueue和pthread函数.
我目前有以下两种选择,但我对其中任何一种都不满意.还有其他选择吗?
pthread_t选项
pthread_t似乎是特定平台的typedef _opaque_pthread_h.现在可以使用字段_opaque_pthread_h,即使它是hack-y而且不可移植.它有一个__siglong类型的字段,但是对于我的进程的所有线程,它似乎具有相同的值.
NSThread选项
[NSThread name]需要NSAutoreleasePool在适当的位置,但我不希望这是一个要求,因为我们的大多数代码都是纯C++,所以在没有自动释放池包装的情况下启动c ++函数会很好.
如何获取当前队列名称?我的意思是队列标签,如com.example.myqueue.在调试器中的Xcode 4中,我只能看到_block_invoke_1.谢谢.