代码的日常语法

2021-05-24  本文已影响0人  CodingTom

存储一个属性: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];
上一篇 下一篇

猜你喜欢

热点阅读