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;
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容