如何管理內(nèi)存:

1. Returning 'self' while it is not set to the result of '[(super or self) init...]'

有可能造成這個(gè)結(jié)果的原因是if(self= [superinitWithFrame:frame])寫的是“==”

<code>- (instancetype)initWithFrame:(CGRect)frame

{

? ? if(self= [superinitWithFrame:frame]) {

? ? ? ? [self createMapView];

? ? }

? ? return self;

}</code>

2. Value stored to 'arrImage' during its initialization is never read

可能原因:1)重復(fù)開辟了空間母怜。具體表現(xiàn)在:

<code>NSArray* arrImage? =[ [NSArray alloc]init];?

arrImage = [NSArray arrayWithObjects:@"1", @"2", nil];//錯(cuò)誤</code>

//此處應(yīng)該只是聲明NSArray* arrImage祭刚;即可因?yàn)閍rrayWithObjects是“便捷構(gòu)造”懦趋。 它會(huì)做什么:return [[[NSArray alloc] initWithObjects:@"hai",@"how",@"are",@"you",nil] autorelease]

2) NSString*weiVo? = [NSStringalloc]init;+ stringWithFormat引起。

(1)抽莱、initWithFormat是實(shí)例辦法

只能經(jīng)由過(guò)程 NSString* str = [[NSString alloc] initWithFormat:@"%@",@"Hello World"] 調(diào)用衅斩,然則必須手動(dòng)release來(lái)開釋內(nèi)存資料

(2)勘伺、stringWithFormat是類辦法

可以直接用 NSString* str = [NSString stringWithFormat:@"%@",@"Hello World"] 調(diào)用昌腰,內(nèi)存經(jīng)管上是autorelease的开伏,不消手動(dòng)顯式release

并且提出了一個(gè)常見錯(cuò)誤:label.text = [[NSString alloc] initWithFormat:@"%@",@"abc"];最后在dealloc中將label給release掉;然則仍然會(huì)產(chǎn)生內(nèi)存泄漏遭商!

原因在于:用label.text = ...時(shí)硅则,實(shí)際是隱式調(diào)用的label的setText辦法,這會(huì)retain label內(nèi)部的字符串變量text(哪怕這個(gè)字符串的內(nèi)容跟傳進(jìn)來(lái)的字符串內(nèi)容雷同株婴,但體系仍然當(dāng)成二個(gè)不合的字符串對(duì)象),所以最后release label時(shí)暑认,實(shí)際上只開釋了label內(nèi)部的text字符串困介,然則最初用initWithFormat生成的字符串并未開釋,終極造成了泄漏蘸际。

解決辦法有二個(gè):

(1)座哩、NSString * str = [[NSString alloc] initWithFormat:@"%@",@"abc"];

label.text = str;[str release];

最后在dealloc中再[label release]

(2)粮彤、label.text = [NSString stringWithFormat:@"%@"根穷,@"abc"];

然后剩下的工作交給NSAutoreleasePool

3.Dictionary value cannot be nil

造成這個(gè)的可能原因是字典中的對(duì)象有的沒有初始化。

4.Property of mutable type 'NSMutableDictionary' has 'copy' attribute; an immutable object will be stored instead

這個(gè)檢測(cè)的是NSMutable*的屬性不能添加copy修飾导坟。

5.Potential leak of an object stored into 'colorSpace'

代碼分析:1. Assuming 'rawData' is non-null

2. Call to function 'CGColorSpaceCreateDeviceRGB' returns a Core Foundation object of type CGColorSpaceRef _Nullable with a +1 retain count

3. Assuming 'context' is null

4. Object leaked: object allocated and stored into 'colorSpace' is not referenced later in this execution path and has a retain count of +1

<code>/**

?*? @brief? 取圖片某一點(diǎn)的顏色

?*

?*? @param point 某一點(diǎn)

?*

?*? @return 顏色

?*/

- (UIColor*)colorAtPoint:(CGPoint)point

{

? ? if(point.x<0|| point.y<0)

? ? ? ? returnnil;


? ? CGImageRefimageRef =self.CGImage;

? ? NSUIntegerwidth =CGImageGetWidth(imageRef);

? ? NSUIntegerheight =CGImageGetHeight(imageRef);

? ? if(point.x>= width || point.y>= height)returnnil;


? ? unsignedchar*rawData =malloc(height * width *4);

? ? if(!rawData)returnnil;


? ? CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();

? ? NSUIntegerbytesPerPixel =4;

? ? NSUIntegerbytesPerRow = bytesPerPixel * width;

? ? NSUIntegerbitsPerComponent =8;

? ? CGContextRefcontext =CGBitmapContextCreate(rawData,

?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? width,

?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? height,

?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? bitsPerComponent,

?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? bytesPerRow,

?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? colorSpace,

?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? kCGImageAlphaPremultipliedLast

?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |kCGBitmapByteOrder32Big);

? ? if(!context) {

? ? ? ? CGColorSpaceRelease(colorSpace);//這兩句就是解決辦法

? ? ? ? CGContextRelease(context);//這一句也是

? ? ? ? free(rawData);

? ? ? ? returnnil;

? ? }

? ? CGColorSpaceRelease(colorSpace);

? ? CGContextDrawImage(context,CGRectMake(0,0, width, height), imageRef);

? ? CGContextRelease(context);


? ? intbyteIndex = (bytesPerRow * point.y) + point.x* bytesPerPixel;

? ? CGFloatred? = (rawData[byteIndex]? ? *1.0) /255.0;

? ? CGFloatgreen = (rawData[byteIndex +1] *1.0) /255.0;

? ? CGFloatblue? = (rawData[byteIndex +2] *1.0) /255.0;

? ? CGFloatalpha = (rawData[byteIndex +3] *1.0) /255.0;


? ? UIColor*result =nil;

? ? result = [UIColorcolorWithRed:redgreen:greenblue:bluealpha:alpha];

? ? free(rawData);

? ? returnresult;

}

</code>

6.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末屿良,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子惫周,更是在濱河造成了極大的恐慌尘惧,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,695評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件递递,死亡現(xiàn)場(chǎng)離奇詭異喷橙,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)登舞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門贰逾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人菠秒,你說(shuō)我怎么就攤上這事疙剑。” “怎么了?”我有些...
    開封第一講書人閱讀 168,130評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵核芽,是天一觀的道長(zhǎng)囚戚。 經(jīng)常有香客問我,道長(zhǎng)轧简,這世上最難降的妖魔是什么驰坊? 我笑而不...
    開封第一講書人閱讀 59,648評(píng)論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮哮独,結(jié)果婚禮上拳芙,老公的妹妹穿的比我還像新娘。我一直安慰自己皮璧,他們只是感情好舟扎,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,655評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著悴务,像睡著了一般睹限。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上讯檐,一...
    開封第一講書人閱讀 52,268評(píng)論 1 309
  • 那天羡疗,我揣著相機(jī)與錄音,去河邊找鬼别洪。 笑死叨恨,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的挖垛。 我是一名探鬼主播痒钝,決...
    沈念sama閱讀 40,835評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼痢毒!你這毒婦竟也來(lái)了送矩?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,740評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤闸准,失蹤者是張志新(化名)和其女友劉穎益愈,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體夷家,經(jīng)...
    沈念sama閱讀 46,286評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蒸其,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,375評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了库快。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片摸袁。...
    茶點(diǎn)故事閱讀 40,505評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖义屏,靈堂內(nèi)的尸體忽然破棺而出靠汁,到底是詐尸還是另有隱情蜂大,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布蝶怔,位于F島的核電站奶浦,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏踢星。R本人自食惡果不足惜澳叉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,873評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望沐悦。 院中可真熱鬧成洗,春花似錦、人聲如沸藏否。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)副签。三九已至遥椿,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間淆储,已是汗流浹背修壕。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留遏考,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,921評(píng)論 3 376
  • 正文 我出身青樓蓝谨,卻偏偏與公主長(zhǎng)得像灌具,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子譬巫,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,515評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容