Ответ 1
NSLog(@"%@", [NSThread currentThread]);
Есть ли способ распечатать текущий идентификатор потока, на котором выполняется текущий метод?
(objective-c пожалуйста)
NSLog(@"%@", [NSThread currentThread]);
#include <pthread.h>
...
mach_port_t machTID = pthread_mach_thread_np(pthread_self());
NSLog(@"current thread: %x", machTID);
В Swift3
print("Current thread \(Thread.current)")
В Swift
print("Current thread \(NSThread.currentThread())")
вы можете взломать что-то вроде этого (это просто печатает красиво, но вы можете продолжить и разделить, пока не получите номер):
+ (NSString *)getPrettyCurrentThreadDescription {
NSString *raw = [NSString stringWithFormat:@"%@", [NSThread currentThread]];
NSArray *firstSplit = [raw componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"{"]];
if ([firstSplit count] > 1) {
NSArray *secondSplit = [firstSplit[1] componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"}"]];
if ([secondSplit count] > 0) {
NSString *numberAndName = secondSplit[0];
return numberAndName;
}
}
return raw;
}