ios學(xué)習(xí)筆記之基礎(chǔ)數(shù)據(jù)類型的轉(zhuǎn)換
前言
前幾天在做一些小功能的時(shí)候,忽然發(fā)現(xiàn)有的基礎(chǔ)數(shù)據(jù)轉(zhuǎn)換都忘記了,于是趕緊整理下記下來!方便自己以后查閱,也給有需要的朋友們一些參考,下面話不多說,來看詳細(xì)的內(nèi)容。
一、NSString
字符串拼接:
NSString *string = [NSString stringWithFormat:@"%@%@",對(duì)象,對(duì)象];
字符串與int
int intString = [newString intValue]; NSString *string = [NSString stringWithFormat:@"%d",intSteing];
字符串與float
float floatString = [newString floatValue]; NSString *string = [NSString stringWithFormat:@"%f",floatString];
NSData與字符串
NSString *dataStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; NSData *strData = [dataStr dataUsingEncoding: NSUTF8StringEncoding];
二、NSData
NSData與Byte
NSString *testString = @"1234567890"; NSData *byteData = [testString dataUsingEncoding:NSUTF8StringEncoding]; Byte *testByte = (Byte *)[byteData bytes]; //---------------------------------------------------- Byte byte[] ={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23}; NSData *adata = [[NSData alloc] initWithBytes:byte length:24];
NSData與UIImage
UIImage *aimage = [UIImage imageWithData: imageData]; NSData *imageData = UIImagePNGRepresentation(aimae);
json轉(zhuǎn)NSData
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:&parseError];
三、布爾類型(在計(jì)算機(jī)內(nèi)部以int類型存儲(chǔ))
布爾類型是_Bool(別名BOOL),取值范圍是1或0,其中1可以用TURE和YES表示,0可以用FALSE和NO表示。
四、枚舉類型(在計(jì)算機(jī)內(nèi)部以int類型存儲(chǔ))
如果需要定義一組相關(guān)常量,可以采用枚舉類型,把這些常量定義成一個(gè)類型,例如游戲在上、下、左、右方向,可以枚舉類型:enum direction{up,down,left,right}.
其中,up從0開始,down是1,以此類推加1。如果不想從0開始,也可以指定初始值,如:enum direction{up=1,down,left,right}
五、nil、NULL、NSNull
1.nil用來給對(duì)象賦值(OC的任何對(duì)象都屬于id類型),Null則給任何指針賦值,NULL和nil不能互換,nil用于類指針賦值(在OC中類是一個(gè)對(duì)象,是類的meta-class的實(shí)例),而NSNull則用于集合操作,雖然它們表示的都是空值,但使用場合不同。
2.OC有個(gè)特性,就是當(dāng)發(fā)送消息給nil對(duì)象使,系統(tǒng)返回0值而不是引起異常,這和Java的NullPointerException以及C/C++的程序直接崩潰的處理完全不同,因?yàn)閚il是對(duì)象的合法值,nil對(duì)象同樣可以接收消息。
3.nil被定義為空對(duì)象,也就是值為0的對(duì)象。
六、id類型
1.在OC中最普遍的3種類型就是id、Class和SEL, id就是指向OC對(duì)象的指針,它等價(jià)于C語言中的void *,可以映射任何對(duì)象指針類型指向它,或者映射它指向其他的對(duì)象。當(dāng)然,也可以傳遞任何消息給id,但如果該id不支持這個(gè)消息就會(huì)返回一個(gè)運(yùn)行時(shí)異常。
2.id數(shù)據(jù)類型可存儲(chǔ)任何類型的對(duì)象。從某種意義上說,它是一般對(duì)象類型。如果要用基本類型代替,需要對(duì)基本數(shù)據(jù)類型進(jìn)行封裝。
3.id是一個(gè)指向任何一個(gè)繼承了Object(或者NSObject)類的對(duì)象。需要注意的是,id
是一個(gè)指針,所以在使用id的時(shí)候不需要加星號(hào)。例如:id foo = nil;
4.在OC中,id取代了int類型成為默認(rèn)的數(shù)據(jù)類型(在C語言上的函數(shù)返回值,int是默認(rèn)的返回類型)。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作帶來一定的幫助,如果有疑問大家可以留言交流。
- iOS開發(fā)中使用SQL語句操作數(shù)據(jù)庫的基本用法指南
- 詳解iOS應(yīng)用開發(fā)中Core Data數(shù)據(jù)存儲(chǔ)的使用
- iOS開發(fā)使用XML解析網(wǎng)絡(luò)數(shù)據(jù)
- 詳解iOS開發(fā)中UItableview控件的數(shù)據(jù)刷新功能的實(shí)現(xiàn)
- iOS開發(fā)使用JSON解析網(wǎng)絡(luò)數(shù)據(jù)
- iOS開發(fā)中使用FMDB來使程序連接SQLite數(shù)據(jù)庫
- iOS sqlite對(duì)數(shù)據(jù)庫的各種操作(日常整理全)
- 深入講解iOS開發(fā)中應(yīng)用數(shù)據(jù)的存儲(chǔ)方式
- iOS開發(fā)使用GDataXML框架解析網(wǎng)絡(luò)數(shù)據(jù)
- 詳解iOS App開發(fā)中session和coockie的用戶數(shù)據(jù)存儲(chǔ)處理
相關(guān)文章
iOS利用NSAttributeString實(shí)現(xiàn)不同顏色大小顯示的方法
這篇文章主要給大家愛介紹了關(guān)于iOS利用NSAttributeString實(shí)現(xiàn)不同顏色大小顯示的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-06-06詳談iOS 位置權(quán)限彈出框閃現(xiàn)的問題
下面小編就為大家?guī)硪黄斦刬OS 位置權(quán)限彈出框閃現(xiàn)的問題。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-04-04iOS實(shí)現(xiàn)自動(dòng)循環(huán)播放的banner實(shí)例詳解
輪播視圖通常也叫Banner,90%以上App都會(huì)用到的一個(gè)控件,網(wǎng)上有很多開源代碼,下面這篇文章主要給大家介紹了關(guān)于利用iOS如何實(shí)現(xiàn)自動(dòng)循環(huán)播放的banner的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。2017-12-12iOS進(jìn)階之xib上控件自動(dòng)生成純代碼
本篇內(nèi)容是一篇關(guān)于IOS開發(fā)進(jìn)階的內(nèi)容,學(xué)習(xí)xib上控件自動(dòng)生成純代碼這個(gè)功能,有興趣的朋友參考下。2018-02-02