当前位置:K88软件开发 → 文章中心 → 编程语言 → Objective-C → Objective-C01 → 文章内容
AOP
@"label" : @"Logout with Facebook" {
, @{ @"class" : @"ZOCMainViewController", @"selector" : @"loginView:handleError:", @"label" : @"Login error with Facebook" {
, @{ @"class" : @"ZOCMainViewController", @"selector" : @"shareButtonPressed:", @"label" : @"Share button" {
] {
;
{
这个提及的架构在 Github 的EF Education First 中托管 - (void)setupWithConfiguration:(NSDictionary *)configuration{ // screen views tracking for (NSDictionary *trackedScreen in configuration[@"trackedScreens"]) { Class clazz = NSClassFromString(trackedScreen[@"class"]);
[clazz aspect_hookSelector:@selector(viewDidAppear:) withOptions:AspectPositionAfter usingBlock:^(id<
AspectInfo>
aspectInfo) { dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ NSString *viewName = trackedScreen[@"label"];
[tracker trackScreenHitWithName:viewName];
{
);
{
];
{
// events tracking for (NSDictionary *trackedEvents in configuration[@"trackedEvents"]) { Class clazz = NSClassFromString(trackedEvents[@"class"]);
SEL selektor = NSSelectorFromString(trackedEvents[@"selector"]);
[clazz aspect_hookSelector:selektor withOptions:AspectPositionAfter usingBlock:^(id<
AspectInfo>
aspectInfo) { dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ UserActivityButtonPressedEvent *buttonPressEvent = [UserActivityButtonPressedEvent eventWithLabel:trackedEvents[@"label"]];
[tracker trackEvent:buttonPressEvent];
{
);
{
];
{
{
, @{ @"class" : @"ZOCMainViewController", @"selector" : @"loginView:handleError:", @"label" : @"Login error with Facebook" {
, @{ @"class" : @"ZOCMainViewController", @"selector" : @"shareButtonPressed:", @"label" : @"Share button" {
] {
;
{
这个提及的架构在 Github 的EF Education First 中托管 - (void)setupWithConfiguration:(NSDictionary *)configuration{ // screen views tracking for (NSDictionary *trackedScreen in configuration[@"trackedScreens"]) { Class clazz = NSClassFromString(trackedScreen[@"class"]);
[clazz aspect_hookSelector:@selector(viewDidAppear:) withOptions:AspectPositionAfter usingBlock:^(id<
AspectInfo>
aspectInfo) { dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ NSString *viewName = trackedScreen[@"label"];
[tracker trackScreenHitWithName:viewName];
{
);
{
];
{
// events tracking for (NSDictionary *trackedEvents in configuration[@"trackedEvents"]) { Class clazz = NSClassFromString(trackedEvents[@"class"]);
SEL selektor = NSSelectorFromString(trackedEvents[@"selector"]);
[clazz aspect_hookSelector:selektor withOptions:AspectPositionAfter usingBlock:^(id<
AspectInfo>
aspectInfo) { dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ UserActivityButtonPressedEvent *buttonPressEvent = [UserActivityButtonPressedEvent eventWithLabel:trackedEvents[@"label"]];
[tracker trackEvent:buttonPressEvent];
{
);
{
];
{
{
AOP