pragma警告处理
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | 使用pragma消除警告 (绝不可强行消除,因为有可能是个运行时错误) #pragma clang diagnostic push #pragma clang diagnostic ignored "命令字符串" 代码块 #pragma clang diagnostic pop 1. "-Warc-performSelector-leaks" performselector可能造成内存泄漏 SEL sel = @selector (gl_getImage:); [ self performSelector:sel withObject: nil ]; 以上警告也可使用消除 IMP imp = [app methodForSelector:sel]; void (*func)( id , SEL , NSInteger ) = ( void *)imp; func(app,selector,0); 2. "-Wreceiver-is-weak" 调用者接收者是weak属性 3. "-Wunused-variable" 变量未使用 或者 __unused int m = 2; //Unused variable 'm' 4. "-Wdeprecated-declarations" 方法弃用 [UIAlertView alertView........] 5. "-Warc-retain-cycles" 循环引用 while ( true ){} 6. "-Wincompatible-pointer-types" 指针不兼容的 7. "-Wundeclared-selector" 方法在本类中未申明 eg. SEL sel = @selector (gl_getImage) 不过以上方法导致的警告也可使用runtime机制消除 SEL sel = sel_registerName( "gl_getImage:" ) SEL sel = NSSelectorFromString (@ "gl_getImage:" ); 8. "-Wunreachable-code" 代码将永不被执行 NSLog (@ "m" ); return ; NSLog (@ "n" ); //Code will never be executed 如果想将项目中所有某类型的警告都消除 11. 配置文件 buildSettings->Other Warning Flags 加入配置字符 11.1 code will never be executed -Wno-unreachable-code 全局禁用警告 -Wunreachable-code 全局启用警告 11.2 Unused Entity Issue / unused function 'xxxxx' -Wno-unused-function 全局禁用 -Wunused-function 全局启用 11.3 ...... |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步