use macro in  objc runtime