The `+class` method is implemented to return the receiver rather than a static class, I think this method needs to be implemented as a block.

```
(lldb) p (void*)[[NSObject class] methodForSelector:@selector(class)]
(void *) $1 = 0x00007fff938b0cf1
(lldb) disass --address 0x00007fff938b0cf1
libobjc.A.dylib`+[NSObject class]:
   0x7fff938b0cf1:  movq   %rdi, %rax
   0x7fff938b0cf4:  ret    
```