友盟第三方登入后,进行分享,成功后退出登录,选择QQ再登录,结果程序就崩溃了!!!
2016-09-06 18:14
423 查看
友盟打印的崩溃日志,控制器是进行分享的控制器。
*** -[HNWatchLivingRoomController isMemberOfClass:]: message sent to deallocated instance 0x1372bfa00
下面是自定义的工具类,封装的一个进行第三方分享的加方法:
后来猜想,是delegate设置为vc出现了问题。
把delegate设置为nil时,结果就没有崩溃了。
但是,设置为nil时,分享回调就没有了。
于是,把delegate设置为self(工具类),在工具类里面,定义一个block。
在代理里面,用block进行回调。
代码:
*** -[HNWatchLivingRoomController isMemberOfClass:]: message sent to deallocated instance 0x1372bfa00
下面是自定义的工具类,封装的一个进行第三方分享的加方法:
+ (void)jhThirdPartyShareWithTitle:(NSString *)title url:(NSString *)url shareText:(NSString *)text inController:(UIViewController <UMSocialUIDelegate> *)vc { //分享的title [UMSocialData defaultData].extConfig.title = title; //-------> 设置分享后,点击跳转的url,不设置,就是AppDelegate.m里面设置的 url //Qzone [UMSocialData defaultData].extConfig.qzoneData.url = url; //QQ [UMSocialData defaultData].extConfig.qqData.url = url; [UMSocialData defaultData].extConfig.qqData.qqMessageType = UMSocialQQMessageTypeDefault; //微信好友 [UMSocialData defaultData].extConfig.wechatSessionData.url = url; //微信朋友圈-只显示图片和标题,不显示内容 [UMSocialData defaultData].extConfig.wechatTimelineData.url = url; [UMSocialData defaultData].extConfig.wxMessageType = UMSocialWXMessageTypeText; [UMSocialSnsService presentSnsIconSheetView:vc appKey:UMAPPKEY shareText:text shareImage:[UIImage imageNamed:@"icon-about"] shareToSnsNames:@[UMShareToWechatSession,UMShareToWechatTimeline,UMShareToSina,UMShareToQQ,UMShareToQzone] delegate:vc]; }
后来猜想,是delegate设置为vc出现了问题。
把delegate设置为nil时,结果就没有崩溃了。
但是,设置为nil时,分享回调就没有了。
于是,把delegate设置为self(工具类),在工具类里面,定义一个block。
在代理里面,用block进行回调。
代码:
- (void)jhThirdPartyShareWithTitle:(NSString *)title url:(NSString *)url shareText:(NSString *)text inController:(UIViewController <UMSocialUIDelegate> *)vc callBackBlock:(void (^)())callBlock { //保存block _callBackBlock = callBlock ...... }
#pragma mark UMSocialUIDelegate -(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response { //根据`responseCode`得到发送结果,如果分享成功 if(response.responseCode == UMSResponseCodeSuccess) { //得到分享到的平台名 DLog(@"share to sns name is %@",[[response.data allKeys] objectAtIndex:0]); //分享成功 if (_callBackBlock){ _callBackBlock(); } } }
相关文章推荐
- 友盟微信,朋友圈分享成功返回app时,退出登录异常解决办法
- Android使用友盟集成QQ、微信、微博等第三方分享与登录方法详解
- Android友盟集成QQ、微信、微博等第三方登录与分享
- 友盟QQ第三方分享登录
- 集成友盟第三方登录(qq、微信、微信朋友圈、新浪)、分享
- iOS (学习) iOS_9 以后,想要进行第三方(分享,登录)网络请求。
- 友盟第三方微信登录分享授权错误
- android-友盟第三方登录,及分享的使用
- 友盟第三方QQ登录和获取用户登录信息并设置用户头像
- Android记录16-友盟第三方登录、分享实现
- 使用友盟进行第三方平台的授权分享
- 友盟 微信第三方登录-返回成功却提示服务器繁忙
- android第三方(qq、微信、微博)登录和分享
- Android 使用友盟分享SDK,分享到QQ成功后,遇到app被销毁后,回到此分享界面无法正常点击界面问题。--连QQ都忘记处理的activity状态恢复问题
- Android 第三方QQ、微信、微博登录分享
- cordova 实现第三方登录及分享,qq,微信,微博,插件的使用和改动
- iOS 友盟第三方登录分享(转载)
- Android记录16-友盟第三方登录、分享实现
- 友盟分享成功,返回后,程序崩溃的问题
- 友盟第三方登录、分享实现流程