xcode禁用代码分析的警告和内存泄漏
在使用xcode进行iphone应用开发时,经常需要添加一些第三方的类库,而一些第三方的类库由于缺少维护,从而导致类库中含有各种警告和各种内存泄漏,但并不影响运行.
倘若我们需要用到第三方库,而由不想在代码分析时看到这些库的警告或内存泄漏,我需要这样做:
|
1
2
3
4
5
|
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
//含警告的代码,如下,btn为UIButton类型的指针
UIView *view = btn;
#pragma clang diagnostic pop
|
“-Wincompatible-pointer-types”为警告类型
clang为编译器名,这里也可以替换为GCC
#pragma clang diagnostic ignored后面只能跟一个忽略警告类型
如果需要同时忽略多种警告,需要这样写
|
1
2
3
4
5
6
|
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
#pragma clang diagnostic ignored "-Wincomplete-implementation"
//含警告的代码,如下,btn为UIButton类型的指针
UIView
*view = btn;
#pragma clang diagnostic pop
|
另外使用xcode的Analyze进行代码分析时,xcode会检查出程序的内存泄漏,这个不属于编译警告,我们需要添加一个宏来把这些代码忽略
|
1
2
3
|
#ifndef __clang_analyzer__
//含内存泄漏的代码
#endif
|
ios上的开源正则扩展类 RegexKitLite 就是一个充满各种内存泄漏的类,尽管作者已经在该类上注释说可以忽略这些内存泄漏的提示,但作为一个有代码洁癖的程序员,我还是不想看到这些内存泄漏的警告提示.
|
1
2
3
4
5
6
7
8
|
//已知的一些编译警告类型
-Wincompatible-pointer-types
指针类型不匹配
-Wincomplete-implementation
没有实现已声明的方法
-Wprotocol
没有实现协议的方法
-Wimplicit-function-declaration
尚未声明的函数(通常指c函数)
-Warc-performSelector-leaks
使用performSelector可能会出现泄漏(该警告在xcode4.3.1中没出现过,网上流传说4.2使用performselector:withObject: 就会得到该警告)
-Wdeprecated-declarations
使用了不推荐使用的方法(如[UILabel setFont:(UIFont*)])
-Wunused-variable
含有没有被使用的变量 |
警告代码查找方法如下图



http://blog.waaile.com/clang-diagnostic-ignored/
psp/nds/gba开发工具devkitpro for mac/linux/windows
项目地址
http://sourceforge.net/projects/devkitpro/files/
psp/nds/gba开发工具devkitpro
for mac/linux/windowsPrevious Entry
ios开发使用xib创建自定义UITableViewCell
ios应用开发中使用最多的控件莫过于就是UITableView了,而用于显示UITableView行的就是UITableViewCell.
UITableViewCell类默认有
1.创建一个新项目,选择SingleView模版.Product Name 输入 CustomCell ,Device Family 选择 iphone.
2.创建完毕后可见目录结构如下
3.打开CCViewController.xib,拖一个UITableView在view上,右击UITableView,分别dataSource和delegate链接到File’s Owner处.这里的FIle’s Owner就是CCViewController.
4.在CCViewControlller.m上添加以下代码
#import “CCViewController.h”
@interface CCViewController () <UITableViewDataSource,UITableViewDelegate>
@end
@implementation CCViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)viewDidUnload
{
[super viewDidUnload];
// Release any retained subviews of the main view.
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
[...]
ios开发使用xib创建自定义UITableViewCellNext
Entry
xcode禁用代码分析的警告和内存泄漏的更多相关文章
- 【linux】linux下对java程序生成dump文件,并使用IBM Heap Analyzer进行分析,查找定位内存泄漏的问题代码
1.首先,java程序启动在linux,怎么生成dump文件? 1>第一步,首先你需要得到java程序的PID,最简单的方法使用如下命令 ps -ef|grep java 或者如果是docker ...
- JVM源码分析之警惕存在内存泄漏风险的FinalReference(增强版)
概述 JAVA对象引用体系除了强引用之外,出于对性能.可扩展性等方面考虑还特地实现了四种其他引用:SoftReference.WeakReference.PhantomReference.FinalR ...
- 使用Xcode和Instruments调试解决iOS内存泄漏
尽管iOS 5.0加入版本号之后ARC机制,由于相互引用关系是复杂的.内存泄漏可能仍然存在.于是,懂原理是非常重要的. 这里讲述在没有ARC的情况下,怎样使用Instruments来查找程序中的内存泄 ...
- Windows内存性能分析(一)内存泄漏
判断内存性能表现主要是为了解决如下两个问题: 1. 当前web应用是否存在内存泄漏,如果有,问题的程度有多大? 2. 如果web应用的代码无法进一步改进,当前web应用所在的服务器是否存在内存上的瓶颈 ...
- java命令分析线程死锁以及内存泄漏
一.介绍 jstack是java虚拟机自带的一种堆栈跟踪工具.jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项&qu ...
- Erlang 内存泄漏分析
随着项目越来越依赖Erlang,碰到的问题也随之增加.前段时间线上系统碰到内存高消耗问题,记录一下troubleshooting的分析过程.线上系统用的是Erlang R16B02版本. 问题描述 有 ...
- Java内存泄漏分析与解决方案
Java内存泄漏是每个Java程序员都会遇到的问题,程序在本地运行一切正常,可是布署到远端就会出现内存无限制的增长,最后系统瘫痪,那么如何最快最好的检测程序的稳定性,防止系统崩盘,作者用自已的亲身经历 ...
- Android内存泄漏分析及调试
尊重原创作者,转载请注明出处: http://blog.csdn.net/gemmem/article/details/13017999 此文承接我的另一篇文章:Android进程的内存管理分析 首先 ...
- Android开发从GC root分析内存泄漏
我们常说的垃圾回收机制中会提到GC Roots这个词,也就是Java虚拟机中所有引用的根对象.我们都知道,垃圾回收器不会回收GC Roots以及那些被它们间接引用的对象.但是,对于GC Roots的定 ...
随机推荐
- Hadoop 单机安装配置
- Eclipse配置Maven详细教程
一.使用eclipse自带的maven插件 首先,现在下载Eclipse Mars之后的版本,基本上都自带了maven插件,无需自己再安装maven. 有几个注意点: 1.默认的本地仓库的目录是在C: ...
- python基础--类的继承以及mro
继承: 什么是继承: 继承是一种关系,描述两个对象之间什么是什么的关系 在程序中,继承描述的是类和类之间的关系 例如 a继承了b,a就能直接使用b已经存在的方法和属性了 a称之为子类,b称之为父类,成 ...
- CF573E (平衡树)
CF573E 题意概要 给出一个长度为\(n\)的数列,从中选出一个子序列\(b[1...m]\)(可以为空) 使得\[ \sum_{i=1}^m{b_i*i}\]最大,输出这个最大值. 其中\(n\ ...
- 安装tengine及淘宝会话保持模块
安装tengine及淘宝会话保持模块 下载http://tengine.taobao.org/ 解压tar -zxvf tengine-2.3.0.tar.gz 安装GCC: yum -y insta ...
- 交互题(apio2016Gap)
题目链接 //Serene #include<algorithm> #include<iostream> #include<cstring> #include& ...
- ScrollView 实现子视图滑动到顶部时固定不动
这个,个人建议使用自己写的布局使用view的gon或者visble的方法,使用design包中的控件来的话,局限性很大 方法有倆 (1)自定义ScrollView 重写ScrollView 的 com ...
- Poj 1830 高斯消元
开关问题 Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 5418 Accepted: 2022 Description 有N个相 ...
- font-family:黑体;导致css定义全部不起作用
css文件里font-family: "黑体";这句会导致后面的css定义全部不起作用了. 只要把font-family: "黑体"; 改成 font-fami ...
- Dubbo+JStorm
Dubbo,是阿里巴巴服务化治理的核心框架,并被广泛应用于阿里巴巴集团的各成员站点.阿里巴巴近几年对开源社区的贡献不论在国内还是国外都是引人注目的,比如:JStorm捐赠给Apache并加入Apach ...