在iOS应用程序中使用macrosSEC_IS_BEING_DEBUGGED_RETURN_NIL

我了解了下面这段代码,声称可以在某种程度上防止方法Swizzling 。

#ifndef DEBUG SEC_IS_BEING_DEBUGGED_RETURN_NIL(); #endif 

但是,包括在我的项目进行testing,我得到一个错误。

函数'SEC_IS_BEING_DEBUGGED_RETURN_NIL'的隐式声明在C99中无效

有人可以帮我解决这个错误,如果我需要包括任何相同的库头。

我不打算回答我自己的问题。 从上面的评论,我做了任何这样的实现search。 并find这个在GitHub项目 。 哪一个是NSObject一个类

也许,这将有助于任何人在future

 #define SEC_IS_BEING_DEBUGGED_RETURN_NIL() size_t size = sizeof(struct kinfo_proc); \ struct kinfo_proc info; \ int ret, name[4]; \ memset(&info, 0, sizeof(struct kinfo_proc)); \ name[0] = CTL_KERN; \ name[1] = KERN_PROC; \ name[2] = KERN_PROC_PID; \ name[3] = getpid(); \ if ((ret = (sysctl(name, 4, &info, &size, NULL, 0)))) { \ if (ret) return nil; \ } \ if (info.kp_proc.p_flag & P_TRACED) return nil 

信贷给这个的制造者

//由Derek Selander在愉快的一天创build。 //
//版权所有(c)
// 2013 Derek Selander。 版权所有。 //