ios - 在 iOS 应用中使用宏 SEC_IS_BEING_DEBUGGED_RETURN_NIL

标签 ios objective-c xcode gdb cycript

我了解了下面的一段代码,据称可以防止 Method Swizzling在某种程度上。

#ifndef DEBUG
SEC_IS_BEING_DEBUGGED_RETURN_NIL();
#endif

但是在我的项目中进行测试时,出现错误。

Implicit declaration of function 'SEC_IS_BEING_DEBUGGED_RETURN_NIL' is invalid in 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

感谢制作者

// Created by Derek Selander on a happy day. //
// Copyright (c)
// 2013 Derek Selander. All rights reserved. //

关于ios - 在 iOS 应用中使用宏 SEC_IS_BEING_DEBUGGED_RETURN_NIL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28480282/

相关文章:

ios - PushViewController & 设置导航栏颜色和标题

ios - 从给定数字生成随机数

ios - 基于indexPath.row的自定义表格单元格操作不起作用?

ios - 自由格式 View Controller xcode

ios - 我们是否需要 iOS Xcode 中的 Storyboard ID

ios - 移动表格放大

ios - Swift/iOS 推出 Apple Pay 特定支付通行证

objective-c - Objective-C 中的模运算符返回错误的结果

ios - UIViewController 方法调整不起作用

ios - 核心数据可以用来保存可编码结构吗?