使用FindObject查找组件

时间:2025-03-19 13:18:52


可以使用shared_ptr<BaseHandler>BaseHandler::FindObject(stringurl)来查找当前looper或其他looper中的组件

约定url各层次采用/分隔

此功能是通过BaseHandler里的string mObjectName来实现的

建议在类的构造函数中取有意义的名称,一般是取类名。

比如class MainLoopermObjectName"MainLooper";

class BoardmObjectName"Board";

class RtcHandlermObjectName"RtcHandler";

假定如下场景

(board);

(rtc)

则可以在任何looper环境下面用

auto obj = dynamic_pointer_cast<RtcHandler>(BaseLooper::GetMainLooper()->FindObject("Board/RtcHandler"));来获取RtcHandler对象。如果是在Board里面查义,则更简单,直接用autoobj= dynamic_pointer_cast<RtcHandler>FindObject("RtcHandler"));就可以了