深入淺出Objective-C筆記(八)

Foundation Framework (1)


  • 基本類型

C語言所有的基本數(shù)據(jù)類型在OC里都是合法的

int (有符號跟無符號整型所占位數(shù)是不確定的盛嘿,要看編譯器情況昨寞,所以代碼在不同系統(tǒng)移植會不方便)
double
float
char

Foundation Framework

BOOL (YES, NO)
NSInteger
NSUInteger

OC里的有符號/無符號整型所占位數(shù)是一樣的
只要涉及整型盡量使用OC里的整型

  • NSString

    • 它是不可變的字符串,一旦字符串對象生成了就不可以改變它瞻惋。

    • 創(chuàng)建字符串對象:

    • NSString *s = [[NSString alloc] init];//創(chuàng)建了一個空的字符串對象

    • 因為NSString對象是不可以改變的,所以我們生成一個空字符串對象沒太大意義援岩。

    • 因為創(chuàng)建字符串在編程中頻率很高歼狼,所以OC提供了一種更便捷的字面量的語法來創(chuàng)建字符串。

    • 創(chuàng)建一個hello world!字符串并輸出:

    • NSString *s = @"hello world!";//@符號表示這是個OC特有的語法

    • NSLog(s); //NSLog()函數(shù)可以接受NSString對象作為參數(shù)直接輸出

    • 如果想知道一個字符串的長度怎么辦享怀?

      • NSInteger length = [ s length];
    • 如何比較兩個字符串是否相同羽峰?

      int main (int argc, const char *argv[]) {
          @autoreleasepool {
              NSString *string1 = @"this is string1";
              NSString *string2 = @"this is string2";
              BOOL result = [string1 isEqualToString:string2];
              if (result) {
                  NSLog (@"Equal!");
              } else {
                  NSLog (@"Not Equal!");
              }
          }
          return 0;
      }
      
      輸出結果:Not Equal!
      
    • 比較字符串大小的方法

      int main (int argc, const char *argv[]) {
          @autoreleasepool {
              NSString *string1 = @"This is string1";
              NSString *string2 = @"This is string2";
              NSComparisonResult result = [string compare:string2];
              NSLog(@"result:%d", result);
          }
          return 0;
      }
      
      NSComparisonResult是枚舉類型,一共三種取值添瓷,-1(小于)梅屉,0(等于),1(大于)
      
      輸出結果:-1 (說明第一個字符串比第二個字符串辛鄞)
      
      字符串比較是按照字典序比較的
      
    • 格式化方法創(chuàng)建一個字符串

      int main (int argc, const char *argv[]) {
          @autoreleasepool {
              NSString *s = [NSString stringWithFormat:@"This is a format string: an int %d and string: %@", 99, @"str");
          NSLog(s);
          }
          return 0;
      }
      
      輸出結果:This is a format string: an int 99 and string: str
      
    • 常用的格式化參數(shù)

格式化參數(shù)語法 含義
%@ 對象
%d, %i 整數(shù)
%u 無符號整數(shù)
%f 浮點
%x,%X 十六進制數(shù)
%o 八進制數(shù)
%p 指針

要注意%@坯汤,在OC里,所有對象都繼承的基類NSObject搀愧,它里面有個方法 (NSString*) description玫霎,這個方法返回的是一個NSString類型的字符串,它的返回值就是%@參數(shù)所對的內(nèi)容(傳給%@的具體值)妈橄。

如果我們要以字符串的形式輸出對象的描述的話庶近,我們就可以在自己創(chuàng)建的類里重新去實現(xiàn)這個description方法。這樣在當我們?nèi)ド筛袷交址臅r候就可以直接用%@把這個對象的描述字符串抽取出來眷蚓。(也就是把description的返回值(是一個字符串鼻种,它的內(nèi)容是對對象的描述)填到%@這個格式化參數(shù)去)

  • 如何在字符串里完成搜索和替換功能?

    int main (int argc沙热,const char *argv[]) {
        @autoreleasepool {
            NSString *string = @"This is a long string";
            NSString *substring = @"long";
             
            NSRange range = [string rangeOfString:substring];
            NSLog(@"location: %d, length: %d", range.location, range.length);
            
            NSString *str = [string stringByReplacingOccurrencesOfString:@"long" withString:@"short"short];
            NSLog(@"str: %@", str)叉钥;
         }
         return 0;
    }
    
     //NSRange 是一個結構體類型罢缸,它含有兩個成員變量,一個是location(表示子串開頭所在母串的位置)投队,length表示子串的長度枫疆。
    
    //輸出結果:location: 10, length: 4
    
    //因為NSString類型的字符串是不可變的,所以我們可以通過替換子串的辦法生成新的字符串敷鸦。
    
    //輸出結果:This is a short string
    
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末息楔,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子扒披,更是在濱河造成了極大的恐慌值依,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件碟案,死亡現(xiàn)場離奇詭異愿险,居然都是意外死亡,警方通過查閱死者的電腦和手機价说,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門辆亏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人鳖目,你說我怎么就攤上這事扮叨。” “怎么了疑苔?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵甫匹,是天一觀的道長。 經(jīng)常有香客問我惦费,道長兵迅,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任薪贫,我火速辦了婚禮恍箭,結果婚禮上,老公的妹妹穿的比我還像新娘瞧省。我一直安慰自己扯夭,他們只是感情好,可當我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布鞍匾。 她就那樣靜靜地躺著交洗,像睡著了一般。 火紅的嫁衣襯著肌膚如雪橡淑。 梳的紋絲不亂的頭發(fā)上构拳,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天,我揣著相機與錄音,去河邊找鬼置森。 笑死斗埂,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的凫海。 我是一名探鬼主播呛凶,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼行贪!你這毒婦竟也來了漾稀?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤瓮顽,失蹤者是張志新(化名)和其女友劉穎县好,沒想到半個月后围橡,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體暖混,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年翁授,在試婚紗的時候發(fā)現(xiàn)自己被綠了拣播。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡收擦,死狀恐怖贮配,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情塞赂,我是刑警寧澤泪勒,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站宴猾,受9級特大地震影響圆存,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜仇哆,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一沦辙、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧讹剔,春花似錦油讯、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至由捎,卻和暖如春兔综,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工邻奠, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留笤喳,地道東北人。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓碌宴,卻偏偏與公主長得像巍杈,于是被迫代替她去往敵國和親厉熟。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容