自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

iPhone應(yīng)用開發(fā)技巧學(xué)習(xí)筆記

移動開發(fā) iOS
本文介紹的是iphone應(yīng)用開發(fā)中一些常見的問題,內(nèi)容很詳細(xì)的介紹了技巧學(xué)習(xí),先來看內(nèi)容。

iphone應(yīng)用開發(fā)技巧學(xué)習(xí)筆記是本文要介紹的內(nèi)容,主要介紹了Autorelease、屬相定義Property、對象的操作。不多說,我們先來看內(nèi)容。

誤釋放對象

問題一:

  1. value = [array objectAtIndex:n]; // 得到一個數(shù)組中的對象
  1. [arry removeObjectAtIndex:n]; //卸載那個對象  

因為value得到了那個對象,但是由于另外一個擁有者release了該對象,所以其實value現(xiàn)在成了搖擺指針(無效數(shù)據(jù))

問題二:

  1. myArray = [NSArray array]; ... [myArray release]; 

NSArray返回的是一個自動釋放對象,不僅myArray不應(yīng)該在一段時間后release,而應(yīng)該在適當(dāng)?shù)臅r候先retain,以防止該array被系統(tǒng)誤釋放。

問題三:

  1. rocket = [rocketLauncher aRocket]; [rocketLauncher release]; 

和array這種數(shù)據(jù)收集類對象一樣,如果我們得到了一個類的子對象而不retain它,那么在原父類被釋放的時候,這個rocket其實也會失去其意義。

對Autorelease的誤解

Cocoa的內(nèi)存管理分為 索引計數(shù)法(Reference Counting/ Retain Count)和 垃圾收集法(Garbage Collection)。而iPhone上目前只支持前者,所以Autorelease就成為很多人的“捷徑”。
但是!Autorelease其實并不是“自動釋放”,不像垃圾收集法,對對象之間的關(guān)系偵測后發(fā)現(xiàn)垃圾-刪除。但是Autorelease其實是“延后釋放”,在一個運行周期后被標(biāo)記為Autorelease會被釋放掉。

切記小心使用Autorelease,理解Autorelease,防止在你還需要該對象的時候已經(jīng)被系統(tǒng)釋放掉了。

屬性項目的定義Property

  1. @property (copy, nonatomic) NSString *title; 

什么是assign,copy,retain之間的區(qū)別?

assign: 簡單賦值,不更改索引計數(shù)(Reference Counting)。

copy: 建立一個索引計數(shù)為1的對象,然后釋放舊對象

retain:釋放舊的對象,將舊對象的值賦予輸入對象,再提高輸入對象的索引計數(shù)為1
retain的實際語法為:

  1. - (void)setName:(NSString *)newName { if (name != newName) { [name release];
  2.  name = [newName retain]; // name’s retain count has been bumped up by 1 } }  

說了那么麻煩,其實接下來的話最重要:

?如果你不懂怎么使用他們,那么就這樣 ->

使用assign: 對基礎(chǔ)數(shù)據(jù)類型 (NSInteger,CGFloat)和C數(shù)據(jù)類型(int, float, double, char, 等等)

使用copy: 對NSString

使用retain: 對其他NSObject和其子類
 
nonatomic關(guān)鍵字:

nonatomic是Objc使用的一種線程保護(hù)技術(shù),基本上來講,是防止在寫未完成的時候被另外一個線程讀取,造成數(shù)據(jù)錯誤。而這種機(jī)制是耗費系統(tǒng)資源的,所以在iPhone這種小型設(shè)備上,如果沒有使用多線程間的通訊編程,那么nonatomic是一個非常好的選擇。

小結(jié):iPhone應(yīng)用開發(fā)技巧學(xué)習(xí)筆記的內(nèi)容介紹完了,希望通過本文的學(xué)習(xí)對你有所幫助。

責(zé)任編輯:zhaolei 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-08-09 17:29:29

iPhone文件屏幕

2011-08-19 11:10:31

iPhone應(yīng)用

2011-08-12 09:48:24

iPhoneCoreLocatio定位

2011-08-15 10:06:22

iPhone開發(fā)nib 文件

2011-08-08 10:10:14

iPhone開發(fā) 圖片 方法

2012-05-17 11:45:12

iPhone

2012-04-26 13:26:58

iPhone應(yīng)用技巧

2011-08-19 15:16:41

XCodeUserScripts腳本

2011-08-05 14:48:06

iPhone應(yīng)用 異步隊列

2011-08-18 10:39:46

iPhone開發(fā)界面

2011-08-08 15:56:18

iPhone 震動 NSUserDefa

2011-08-09 17:12:30

iPhoneCFRunLoop

2011-08-15 17:38:48

iPhone開發(fā)調(diào)試工具

2011-07-27 11:14:37

iPhone UITableVie

2011-08-15 17:52:21

iPhone應(yīng)用對象NSString

2011-08-15 18:02:32

iPhone開發(fā)表視圖

2011-08-16 18:13:42

IPhone開發(fā)UIView動畫

2011-08-19 09:49:03

iPhone開發(fā)Three20 NetTTRequestLo

2011-08-02 17:27:06

iPhone應(yīng)用 剪切技巧

2011-07-27 10:13:23

Cocos2D iPhone
點贊
收藏

51CTO技術(shù)棧公眾號