偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

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

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

誤釋放對(duì)象

問題一:

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

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

問題二:

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

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

問題三:

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

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

對(duì)Autorelease的誤解

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

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

屬性項(xiàng)目的定義Property

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

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

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

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

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

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

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

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

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

使用copy: 對(duì)NSString

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

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

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

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

2011-08-09 17:29:29

iPhone文件屏幕

2011-08-12 09:48:24

iPhoneCoreLocatio定位

2011-08-19 11:10:31

iPhone應(yīng)用

2011-08-15 10:06:22

iPhone開發(fā)nib 文件

2011-08-08 10:10:14

iPhone開發(fā) 圖片 方法

2012-04-26 13:26:58

iPhone應(yīng)用技巧

2012-05-17 11:45:12

iPhone

2011-08-05 14:48:06

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

2011-08-18 10:39:46

iPhone開發(fā)界面

2011-08-19 15:16:41

XCodeUserScripts腳本

2011-08-08 15:56:18

iPhone 震動(dòng) NSUserDefa

2011-07-27 11:14:37

iPhone UITableVie

2011-08-09 17:12:30

iPhoneCFRunLoop

2011-08-15 17:38:48

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

2011-08-15 18:02:32

iPhone開發(fā)表視圖

2011-08-15 17:52:21

iPhone應(yīng)用對(duì)象NSString

2011-08-02 17:27:06

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

2011-08-16 18:13:42

IPhone開發(fā)UIView動(dòng)畫

2011-08-19 09:49:03

iPhone開發(fā)Three20 NetTTRequestLo

2011-07-27 10:13:23

Cocos2D iPhone
點(diǎn)贊
收藏

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