有关Logs编写的疑问

直接上代码,在*.xm文件中:

%hook SpringBoard

  • (void)applicationDidFinishLaunching:(id)arg1{
    %orig;
    NSLog(@"/ppppppppppppp////////////////");
    SBIconContentView *iconContentView = (SBIconContentView *)[SBIconController sharedInstance] contentView]; //问题就在这里,编译会报找不到SBIconContentView及SBIconController定义的错误
    NSLog(@“iconContentView = %@”,iconContentView);
    }

%end

一直有发现这么一个问题,在每个hook的类中,只有在同一个类中的方法才能相互调用(通过self),而当跨类之后,就像上边这种情况就不知道该怎么办了?

我先告诉你答案:把

(SBIconContentView *)[SBIconController sharedInstance] contentView];

改成

%c(SBIconController) sharedInstance] contentView];

你看一看书上第41页的内容,想想看为什么需要这个%c,只有真正理解了,以后才能避免这类问题
提示:SBIconController来自一个可执行文件,而不是一个库

谢谢~~~~