3.3.2节 4.使用Theos

  • (BOOL)application:(id)arg1 didFinishLaunchingWithOptions:(id)arg2
    {
    %orig; // 这里执行了原始的函数块,不就直接返回了吗?

    return YES; // 这里还会执行吗?

}
不知道是我理解错误了吗?

%orig只是执行原始函数,如果是直接返回,则是

return %orig;

你感受一下

执行原始函数,原始函数里应该有类似 return这样的语句呀,难道原始语句如果有返回值的话,这里必须再次显示return 才能返回喽?

这里的%orig应该是个IMP,即一个指针,而不是一段代码,所以需要显式return

  • (BOOL)application:(id)arg1 didFinishLaunchingWithOptions:(id)arg2
    的原始函数是 什么啊?

这个函数就是个回调函数而已,具体的自己写

懂了,原始函数就是客户端自己写的 - (BOOL)application:(id)arg1 didFinishLaunchingWithOptions:(id)arg2
函数的实现