iOS不用调用,running time自动执行方法

时间:2023-03-09 22:47:22
iOS不用调用,running time自动执行方法

拿友盟举例子

友盟比较好使,友盟看了他们的文档 他告诉你你要在 appdelegate didFinishLaunch方法里面写了这个东西

[UMSocialData setAppKey:@"XX"];
// 注册微信 [UMSocialWechatHandler setWXAppId:@"XXX" appSecret:@"XX" url:@""];
// 注册QQ [UMSocialQQHandler setQQWithAppId:@"XXX" appKey:@"XXX" url:@""];

我们需要统计下我页面的信息 你接入了友盟的统计 在appdelegate didFinishLaunch又 多了行代码

需求是无穷无尽 我需要bug统计(fir hud) 提醒用户评分系统(iRate) 推送(jPush 信鸽 个推。。)

决心一定要把代码封装的完美

IQKeyBoardManageiRate这种智能的大牛的readme 写了这段话

Key Features
1) CODELESS, Zero Line Of Code 不需要写任何代码
2) Works Automatically //自动工作
3) No More UIScrollView //不需要scrollview
4) No More Subclasses //不需要继承父类
5) No More Manual Work //不需要配置
6) No More #imports //不需要导入

其实不神奇 只是大牛用了 + load这个方法

学习OC都知道这个代码会在一个类被加载到运行库中就会被自动调用 这不就实现了 自动调用

#import <foundation foundation.h="">
@interface ThirdPartService : NSObject
@end #import "ThirdPartService.h"
#import "UMSocial.h"
#import "UMSocialWechatHandler.h"
#import "UMSocialQQHandler.h"
#import <mobclick.h>
#import <fir fir.h="">
@implementation ThirdPartService
+ (void)load {static dispatch_once_t onceToken;dispatch_once(&onceToken, ^{ // TODO 这里是我自己测试的 fir hud
[FIR handleCrashWithKey:@"XX"]; // 友盟
[UMSocialData setAppKey:@"XX"]; // 隐藏未安装的平台
[UMSocialConfig hiddenNotInstallPlatforms:@[UMShareToQQ,UMShareToQzone,UMShareToWechatSession,UMShareToWechatTimeline]]; // 注册微信
[UMSocialWechatHandler setWXAppId:@"XX" appSecret:@"XX" url:@""]; // 注册QQ
// TODO QQ的不是真的
[UMSocialQQHandler setQQWithAppId:@"XX" appKey:@"XX" url:@""]; // TODO UM统计
[MobClick startWithAppkey:@""];
[MobClick setCrashReportEnabled:NO]; NSLog(@"第三方服务注册完毕");
});
}@end

自动调用,完事!!!!