我了解了下面的一段代码,它声称可以在一定程度上防止Method Swizzling 。
#ifndef DEBUG
SEC_IS_BEING_DEBUGGED_RETURN_NIL();
#endif
但是,在我的项目中进行测试时,我得到了一个错误。
函数“SEC_IS_BEING_DEBUGGED_RETURN_NIL”的隐式声明在 C99 中无效
如果我需要包含任何库头文件,有人可以帮我解决这个错误。
我了解了下面的一段代码,它声称可以在一定程度上防止Method Swizzling 。
#ifndef DEBUG
SEC_IS_BEING_DEBUGGED_RETURN_NIL();
#endif
但是,在我的项目中进行测试时,我得到了一个错误。
函数“SEC_IS_BEING_DEBUGGED_RETURN_NIL”的隐式声明在 C99 中无效
如果我需要包含任何库头文件,有人可以帮我解决这个错误。
我不打算回答我自己的问题。从上面的评论中,我搜索了任何这样的实现。并在 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 在快乐的一天创建。//
// 版权所有 (c)
// 2013 Derek Selander。版权所有。//