成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

iPhone 開發(fā)前準(zhǔn)備 必學(xué)內(nèi)容

移動開發(fā) iOS
本文主要介紹的是iPhone 開發(fā)深入理解 iPhone OS/SDK 與 Objective-C 2.0,在開發(fā)之前應(yīng)該了解一些內(nèi)容,先來看本文。

iPhone 開發(fā)深入理解 iPhone OS/SDK 與 Objective-C 2.0是本完也好介紹的內(nèi)容,工欲善其事,必先利其器。在開發(fā)iPhone應(yīng)用程序的時候,深入理解iPhone OS/SDK與Objective-C 2.0是很重要的。

iPhone OS

iPhone OS 由4個主要部分組成。下面簡單地羅列一下它們的功能。

Cocoa Touch

窗口和視圖

事件管理

用戶接口

加速傳感器

照相機

Media

Core Graphics(2維圖形接口)

Core Animation(動畫)

OpenGL

Core Audio(聲音)

OpenAL

Media Player(MPEG4,MP3)

Core Services

Address Book

Core Foundation

Core Location

CFNetwork(http,https,ftp,SSL,TLS)

網(wǎng)絡(luò)安全

SQLite(SQL數(shù)據(jù)庫)

XML

Core OS

多線程

網(wǎng)絡(luò)應(yīng)用(BSD套接字)

文件系統(tǒng)

Bonjour(利用無線網(wǎng)絡(luò)連接其他機器)

iPhone SDK

iPhone SDK 中主要包含下列4個工具。

Xcode - 項目管理、代碼編輯、編譯、調(diào)試(IDE)

Interface Builder - GUI 設(shè)計

iPhone Simulator - 模擬器

Instrument - 性能測試、調(diào)整

實際開發(fā)的過程中,基本上是在使用 Xcode 與 Interface Builder 來進(jìn)行的。調(diào)試則是使用模擬器或者實際設(shè)備。要注意的是在PC上模擬程序,由于PC的主頻,性能高于實際設(shè)備,所以不能只在模擬器上調(diào)試。除此之外,一些類,功能在模擬器上也是不能使用的,比如 NSDateCalendar 類,或者是照相機功能。

Objective-C 2.0內(nèi)存管理

雖然 Objective-C 2.0 已經(jīng)支持了垃圾收集了,但是 iPhone OS 中卻不能使用它。所以我們需要自己來管理內(nèi)存。Objective-C 的內(nèi)存管理方式與使用引用計數(shù)的方式,就是說對象有一個計數(shù)器,引用對象一次,計數(shù)器加一,當(dāng)計數(shù)器為0的時候,該對象的內(nèi)存被釋放。

創(chuàng)建對象實例的時候(init,alloc)應(yīng)用計數(shù)加一,執(zhí)行過程中,別的對象如果需要該對象,需要用(retain)來引用它,這時,該對象的應(yīng)用計數(shù)器加一。不需要對象的時候用(release)來釋放,這時引用計數(shù)器減一,當(dāng)計數(shù)器為0的時候,釋放該對象內(nèi)存。

  1. init,alloc - 計數(shù)器 +1  
  2. retain - 計數(shù)器 +1  
  3. release - 計數(shù)器 -1 

另外如果不使用 retain,release,可以使用(autorelease)來自動釋放對象。

容器

Objective-C 中的容器主要有以下3種:

數(shù)組

字典

Set

向容器中添加的內(nèi)容不能直接用 int 或 float,需要通過 NSNumber 等封裝類來實現(xiàn)。Objective-C 2.0 開始可以使用迭代子(Enumerator),來順序訪問容器中的元素。

Notification

Notification是消息通知的功能。具體使用 NSNotificationCenter 類。將需要接受通知的對象,方法,事件注冊到該類上。

歸檔(Archive)

歸檔是指將對象的內(nèi)存布局原樣地保存到文件系統(tǒng)上。同樣對應(yīng)的由文件中的數(shù)據(jù)生成對象叫做UnAchive。在 iPhone SDK 中使用 NSKeyedArchiver 和 NSKeyedUnarchiver 類來實現(xiàn)。

一般在程序結(jié)束的時候,保存當(dāng)前的狀態(tài),再次啟動的時候UnAchive一下,就又回到了剛才退出時的狀態(tài)。下面是一個例子:

  1.   // MyKeyedArchiver.h  
  2.   #import   
  3.   @interface NSKeyedArchiver (MyKeyedArchiver)  
  4.   - (void)encodeValueOfObjCType:(const char *)valueType at:(const void *)address;  
  5.   @end  
  6.   #import "MyKeyedArchiver.h"  
  7.   @implementation NSKeyedArchiver (MyKeyedArchiver)  
  8.   - (void)encodeValueOfObjCType:(const char *)valueType at:(const void *)address  
  9.   {  
  10.   NSMutableData *datas = [NSMutableData data];  
  11.   NSArchiver *arch = [[NSArchiver alloc] initForWritingWithMutableData:datas];  
  12.   [arch encodeValueOfObjCType:valueType  
  13.   at:address];  
  14.   [self encodeObject:[NSData dataWithData:datas]];  
  15.   [arch release];  
  16.   }  
  17.   @end  
  18.   // MyKeyedUnarchiver.h  
  19.   #import   
  20.   @interface NSKeyedUnarchiver (MyKeyedUnarchiver)  
  21.   - (void)decodeValueOfObjCType:(const char *)valueType at:(void *)data;  
  22.   @end  
  23.   #import "MyKeyedUnarchiver.h"  
  24.   @implementation NSKeyedUnarchiver (MyKeyedUnarchiver)  
  25.   - (void)decodeValueOfObjCType:(const char *)valueType at:(void *)data  
  26.   {  
  27.   NSData *datas = [self decodeObject];  
  28.   NSUnarchiver *unarch = [[NSUnarchiver alloc] initForReadingWithData:datas];  
  29.   [unarch decodeValueOfObjCType:valueType  
  30.   at:data];  
  31.   [unarch release];  
  32.   }  
  33.   @end 

小結(jié):iPhone 開發(fā)深入理解 iPhone OS/SDK 與 Objective-C 2.0的內(nèi)容介紹完了,希望本文對你有所幫助!

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

2011-07-06 11:10:30

iOS iphone XCode

2011-08-05 10:48:11

iPhone開發(fā) Objective- Cocoa Touc

2011-07-18 14:15:55

iPhone iPad GIS

2011-07-08 14:09:51

iPhone UI

2010-11-01 16:19:59

大型UPS電源準(zhǔn)備工作

2011-07-06 14:53:14

2018-12-07 08:15:03

2011-07-26 16:08:40

iPhone 應(yīng)用程序

2011-08-01 10:21:01

SQLite

2011-07-06 17:53:40

iPhone SDK Xcode

2017-01-16 13:15:19

前端開發(fā)者清單

2009-05-20 16:30:36

Linux虛擬機準(zhǔn)備

2018-01-25 16:23:58

JavaScript寫庫初始化

2011-07-25 18:02:51

iPhone LibFetion 移植

2021-07-12 15:20:47

運維負(fù)載均衡CDN

2018-06-06 10:46:46

ERP

2011-07-06 17:34:47

iPhone

2011-07-08 10:58:47

2011-08-10 15:48:10

iPhone網(wǎng)絡(luò)

2022-01-06 10:48:16

硬盤操作系統(tǒng)數(shù)據(jù)
點贊
收藏

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

主站蜘蛛池模板: 日韩av一区二区在线观看 | 99九九久久 | 日韩人体视频 | 亚洲人成人一区二区在线观看 | 精品视频免费 | 91视视频在线观看入口直接观看 | 久久人爽| 国产精品视频免费看 | 色婷婷九月 | 久久最新网址 | 亚洲男人的天堂网站 | 亚洲欧美自拍偷拍视频 | 97精品超碰一区二区三区 | 国产精品一区在线观看 | 在线综合视频 | 亚洲天堂成人在线视频 | 在线一区视频 | 一级看片免费视频囗交动图 | 岛国视频| 天天操天天射综合 | 爱高潮www亚洲精品 中文字幕免费视频 | 一区二区三区国产 | 欧美一级欧美三级在线观看 | 99re6在线视频精品免费 | 欧美精品a∨在线观看不卡 国产精品久久国产精品 | 中文字幕在线观看视频一区 | 爱综合 | 日本欧美大片 | 精品在线免费观看视频 | 男女污污网站 | 欧美激情五月 | 欧美成人精品一区二区三区 | 天天操天天干天天爽 | 亚洲精品99 | 国精产品一品二品国精在线观看 | 久久久久久久国产精品 | 日韩中文电影 | 久久久国产一区二区三区 | 欧美激情综合五月色丁香小说 | 在线观看www| 国产精品久久99 |