Objective-C 获取线程ID

BOOL getIvarValue(id instance, const char *name, size_t size, void *buffer)
{
    Ivar thisIvar = class_getInstanceVariable([instance class], name);
    ptrdiff_t offset = ivar_getOffset( thisIvar );
    if (0 == offset) return NO;
    
    void *ptr = FBridge(instance, id, void*) + offset;
    memset(buffer, 0, size);
    memcpy(buffer, ptr, size);
    return YES;
}

- (int)seqNumber
{
    __unsafe_unretained NSObject *td = nil;
    getIvarValue(self, "_private", sizeof(td), &td);
    
    int tid = 0;
    getIvarValue(td, "seqNum", sizeof(tid), &tid);
    return tid;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容