XCode各种告警处理

2015-06-06 18:43

编译项目的时候常常无法完全清理各种告警信息,心里超级不爽,目标0 warning...

处理宏定义

//
// 去除 “selector未知 可能导致内存泄露的告警”
// @"PerformSelector may cause a leak because its selector is unknown"
//
#define SuppressPerformSelectorLeakWarning(Stuff) \
do { \
_Pragma("clang diagnostic push") \
_Pragma("clang diagnostic ignored \"-Warc-performSelector-leaks\"") \
Stuff; \
_Pragma("clang diagnostic pop") \
} while (0)

//
//  去掉Deprecated函数调用的告警
//  'UISearchDisplayController' is deprecated: first deprecated in iOS 8.0 - UISearchDisplayController has been replaced with UISearchController
//
#define SuppressDeprecatedDeclarations(Stuff) \
do { \
_Pragma("clang diagnostic push") \
_Pragma("clang diagnostic ignored \"-Wdeprecated-declarations\"") \
Stuff() \
_Pragma("clang diagnostic pop") \
} while(0)


测试示例:

// 1
UISearchBar *searchBar;
UISearchDisplayController *s = [[UISearchDisplayController alloc] initWithSearchBar:searchBar 
   contentsController:self];
   
// 2
[self performSelector:NSSelectorFromString(@"someMethod")];



取自各种开源库及网络,不断整理中....