最近在给项目添加QQ登录功能的时候,遇到一个小问题,它们两个不同的SDK协议里都需要实现以下方法:
//需要在AppDelegate.m中实现的方法
//微信
- (void)onReq:(BaseReq *)req;
- (void)onResp:(BaseResp *)resp;
//QQ
- (void)onReq:(QQBaseReq *)req;
- (void)onResp:(QQBaseResp *)resp;
解决方法:
//把参数类型换成id
- (void)onReq:(id)req{
if([req isKindOfClass:[BaseReq class]]){
//实现微信业务逻辑
//如果需要获取参数中属性的值,可以用KVC
//[req valueForKey:@"key"];
} else {
//QQ业务逻辑
}
}