我了解了以下代码,声称可以在某种程度上防止Method Swizzling。
#ifndef DEBUG
SEC_IS_BEING_DEBUGGED_RETURN_NIL();
#endif
但是,在将其包含在我的项目中进行测试时,出现了错误。
函数“SEC_IS_BEING_DEBUGGED_RETURN_NIL”的隐式声明为
在C99中无效
如果我需要为同一错误添加任何库标头,有人可以帮助我解决此错误。
最佳答案
我无意回答自己的问题。从上面的评论中,我进行了任何此类实现的搜索。并找到了这个In a GitHub Project。这是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在快乐的一天创建。 //
//版权(c)
// 2013年Derek Selander。版权所有。 //