2015-02-12 1 views
2

Я узнал о следующем фрагменте кода, который, как утверждается, в некоторой степени предотвращает Method Swizzling.Использование макроса SEC_IS_BEING_DEBUGGED_RETURN_NIL в приложении iOS

#ifndef DEBUG 
SEC_IS_BEING_DEBUGGED_RETURN_NIL(); 
#endif 

Но при включении в мой проект для тестирования, я получаю сообщение об ошибке.

неявное объявление функции «SEC_IS_BEING_DEBUGGED_RETURN_NIL» является недействительным в C99

Может кто-то помочь мне на эту ошибку, если мне нужно включить любой заголовок библиотеки для того же.

+2

'SEC_IS_BEING_DEBUGGED_RETURN_NIL' не является определенным макросом в контексте, который вы пытались использовать. Вы должны определить его или импортировать файл, который делает. –

ответ

6

Я не собирался отвечать на свой вопрос. Из комментария выше, я сделал поиск для любой такой реализации. И Найдено 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 

Кредиты создателе этого

// Созданный Дереком Selander на счастливый день. //
// Авторское право (c)
// 2013 Дерек Селандер. Все права защищены. //

 Смежные вопросы

  • Нет связанных вопросов^_^