objective-c protocol 组合对象