存储一个属性:AssociatedObject
static void *const kSALaunchOptions = (void *)&kSALaunchOptions;
- (NSDictionary *)sensorsdata_launchOptions {
return objc_getAssociatedObject(self, kSALaunchOptions);
}
- (void)setSensorsdata_launchOptions:(NSDictionary *)sensorsdata_launchOptions {
objc_setAssociatedObject(self, kSALaunchOptions, sensorsdata_launchOptions, OBJC_ASSOCIATION_COPY);
}
神策统计部分自动收集监控
[UIViewController sa_swizzleMethod:@selector(viewDidAppear:) withMethod:@selector(sa_autotrack_viewDidAppear:) error:NULL];
NSError *error = NULL;
//$AppClick
// Actions & Events
[UIApplication sa_swizzleMethod:@selector(sendAction:to:from:forEvent:)
withMethod:@selector(sa_sendAction:to:from:forEvent:)
error:&error];
if (error) {
SALogError(@"Failed to swizzle sendAction:to:forEvent: on UIAppplication. Details: %@", error);
error = NULL;
}
SEL selector = NSSelectorFromString(@"sensorsdata_setDelegate:");
[UITableView sa_swizzleMethod:@selector(setDelegate:) withMethod:selector error:NULL];
[NSObject sa_swizzleMethod:@selector(respondsToSelector:) withMethod:@selector(sensorsdata_respondsToSelector:) error:NULL];
[UICollectionView sa_swizzleMethod:@selector(setDelegate:) withMethod:selector error:NULL];
网友评论