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

iPhone 開發前準備 必學內容

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

iPhone 開發深入理解 iPhone OS/SDK 與 Objective-C 2.0是本完也好介紹的內容,工欲善其事,必先利其器。在開發iPhone應用程序的時候,深入理解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)

網絡安全

SQLite(SQL數據庫)

XML

Core OS

多線程

網絡應用(BSD套接字)

文件系統

Bonjour(利用無線網絡連接其他機器)

iPhone SDK

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

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

Interface Builder - GUI 設計

iPhone Simulator - 模擬器

Instrument - 性能測試、調整

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

Objective-C 2.0內存管理

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

創建對象實例的時候(init,alloc)應用計數加一,執行過程中,別的對象如果需要該對象,需要用(retain)來引用它,這時,該對象的應用計數器加一。不需要對象的時候用(release)來釋放,這時引用計數器減一,當計數器為0的時候,釋放該對象內存。

  1. init,alloc - 計數器 +1  
  2. retain - 計數器 +1  
  3. release - 計數器 -1 

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

容器

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

數組

字典

Set

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

Notification

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

歸檔(Archive)

歸檔是指將對象的內存布局原樣地保存到文件系統上。同樣對應的由文件中的數據生成對象叫做UnAchive。在 iPhone SDK 中使用 NSKeyedArchiver 和 NSKeyedUnarchiver 類來實現。

一般在程序結束的時候,保存當前的狀態,再次啟動的時候UnAchive一下,就又回到了剛才退出時的狀態。下面是一個例子:

  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 

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

責任編輯:zhaolei 來源: 互聯網
相關推薦

2011-07-06 11:10:30

iOS iphone XCode

2011-08-05 10:48:11

iPhone開發 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電源準備工作

2011-07-06 14:53:14

2018-12-07 08:15:03

2011-07-26 16:08:40

iPhone 應用程序

2011-08-01 10:21:01

SQLite

2011-07-06 17:53:40

iPhone SDK Xcode

2017-01-16 13:15:19

前端開發者清單

2018-01-25 16:23:58

JavaScript寫庫初始化

2009-05-20 16:30:36

Linux虛擬機準備

2011-07-25 18:02:51

iPhone LibFetion 移植

2021-07-12 15:20:47

運維負載均衡CDN

2022-01-06 10:48:16

硬盤操作系統數據

2011-07-06 17:34:47

iPhone

2011-07-08 10:58:47

2011-08-10 15:48:10

iPhone網絡

2018-06-06 10:46:46

ERP
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久九九色 | 蜜臀网| 日韩精品一区在线观看 | 蜜桃视频一区二区三区 | 中文字幕精品视频在线观看 | 成人免费小视频 | av日韩一区| 日日碰狠狠躁久久躁婷婷 | 紧缚调教一区二区三区视频 | 乱码av午夜噜噜噜噜动漫 | 亚洲精品久久久久久一区二区 | 久久国产婷婷国产香蕉 | 黄a在线观看 | 精品欧美一区二区三区久久久 | 欧美在线一级 | 97视频在线免费 | 免费在线观看一级毛片 | 国产在线第一页 | 欧美xxxx网站 | 国产精品96久久久久久 | 三极网站 | 精品网| 国产精品区一区二区三区 | 国产精品久久久久久久久久久久 | 97人澡人人添人人爽欧美 | 日本黄色一级片视频 | 成人亚洲片 | 日本一区二区三区免费观看 | 亚洲欧洲一区 | 免费一区 | 国产精品二区三区在线观看 | 国产在线视频一区 | 日韩成人在线播放 | www.99热这里只有精品 | 欧美久| 国产免费让你躁在线视频 | 日韩有码在线播放 | 日韩成人免费在线视频 | 午夜久久久久久久久久一区二区 | 久久伊人精品 | 九九九久久国产免费 |