【GeekBand】Week2. 筆記整理

1. 【OC/2-1】字符串處理

  • NSString(具有恒定性及共享機制)
    NSMutableString(可變)
  • 初始化
NSString *str = @"Hello World!";
NSString *str = [[NSString alloc]initWithCString:"Hello World!"
                                          encoding:NSUTF8StringEncoding];
NSString *str = [NSString stringWithCString:"Hello World!"
                                     encoding:NSUTF8StringEncoding];
NSMutableString *mustr = [NSMutableString stringWithCapacity:100];
  • 字符串長度
str.length
[str length]
  • 判斷相等
str1 isEqualToString: str2 //指針指向的【字符串】是否相等
str1 == str2 //【指針】是否指向同一對象劝篷,【引用】是否相等
  • 返回字符串中第 i 個字符
[str characterAtIndex: i]
  • 大小寫
str = str.uppercaseString; //大寫
str = str.lowercaseString; //小寫
str = str.capitalizedString; //首字母大寫
  • 在str1中查找str2是否存在
/**********
typedef struct _NSRange {  
      unsigned int location; //范圍起始位置
      unsigned int length; //范圍內(nèi)所含元素的個數(shù)
}NSRange;
**********/
if ([str1 rangeOfString:str].location != NSNotFound) {  
      //找到了
}
/*
NSRange range = [str1 rangeOfString:@"Hello"];
range.location
range.length
*/
  • 截取子串
substringToIndex //從第一個字符串開始截取,到指定長度位置,但是不包括該指定位置位置字符串
substringFromIndex //從指定位置開始截取字符串到最后蛔钙,所截取位置包含該指定位置
substringWithRange //傳入NSRange類型,表示從哪里開始截取和長度兼贡,返回字符串類型。
  • 判斷前綴是否存在
hasPrefix
  • 格式化(?)
NSString* format = [NSString stringWithFormat: @"[%d, %d]", 100, 200];
  • NSMutableString的增刪改查方法
[mustr3 appendString:@"Hello Objective"];
[mustr3 insertString:@"-C" atIndex:mustr3.length];
[mustr3 setString:@"Hi Objective"];
NSRange replaceRange = NSMakeRange(0, 2);
[mustr3 replaceCharactersInRange:replaceRange withString:@"Hello"];
NSRange deleteRange = NSMakeRange(5, 10);
[mustr3 deleteCharactersInRange:deleteRange];

2.【OC/2-2】集合類型

NSArray & NSMutableArray

  • 初始化
NSArray *array = [NSArray arrayWithObjects:@"Shanghai",@"Beijing", nil];
NSArray *array = [[NSArray alloc] initWithObjects:@"Shanghai",@"Beijing", nil];
NSArray *array = @[@"Shanghai",@"Beijing"];
NSMutableArray *muArray=[NSMutableArray arrayWithObjects:p1,p2,p3,p4, nil];
//nil為空
  • 元素個數(shù)
array.count
  • 打印數(shù)組
NSLog(@"array: %@" ,array);
  • 數(shù)組元素只能是對象
/*不能直接放基本數(shù)值類型别厘,使用NSNumber將NSInteger包裝為對象*/
NSNumber *numberObject1=[NSNumber numberWithInteger:300];
NSNumber *numberObject2=@300u;//使用字面常量初始化
/*使用NSValue將struct包裝為對象*/
Point point;
point.h=100;
point.v=200;
NSValue *pointObject=[NSValue value:&point withObjCType:@encode(Point)];
/*不能存放nil*/
NSNull* nullValue=[NSNull null];
  • NSArray【不可】改變元素長度以及元素指針,【可以】改變指針指向的內(nèi)容
  • 快速遍歷
for (類 對象 in array)
  • 查找元素
-(NSUInteger)indexOfObject:(id)anObject; //查找對象(isEqual)
-(NSUInteger)indexOfObjectIdenticalTo:(id)anObject; //查找指針
  • 排序(不改變原有數(shù)組,返回的是新數(shù)組)
NSArray* sortArray = [array sortedArrayUsingSelector:@selector(compare:)];
  • NSMutableArray修改元素
[muArray addObject:p];
[muArray removeObjectAtIndex:2];
[muArray insertObject:p atIndex:1];
muArray1[0]=p;

NSSet & NSMutableSet

特點:無序集合,對象唯一眯娱,hash實現(xiàn)查找更快

NSDictionary & NSMutableDictionary

key-value對

  • 初始化(注意KV位置是相反的)
NSDictionary *dictionary1 = @{
      @"Shanghai" : p1,
      @"Beijing" : p2,
      @"New York" : p3,
      @"Paris" : p4
};
NSMutableDictionary *dictionary2 = 
[NSMutableDictionary dictionaryWithObjectsAndKeys:
                                p1, @"Shanghai",
                                p2, @"Beijing",
                                p3, @"New York",
                                p4, @"Paris",
                                nil];
  • 根據(jù)關(guān)鍵字查值
[dictionary1 objectForKey:@"Beijing"]
dictionary1[@"Shanghai"]
  • 快速遍歷
for(NSString* key in dictionary1) {
      id object=dictionary1[key];
      NSLog(@"key:%@, object:%@", key, object);
}
  • 修改值
[dictionary2 setObject:p5 forKey:@"London"];
[dictionary2 removeObjectForKey:@"Shanghai"];

3. 【OC/2-3】ARC

自動釋放池 @autoreleasepool

  • 默認(rèn)主線程自動調(diào)用嘁信,創(chuàng)建新線程時需要自己再創(chuàng)建
  • 可以嵌套使用

4. 【OC/2-4】類型合同:協(xié)議

@protocol

  • 定義時:寫在.h中穿剖,不需要寫實現(xiàn)
    使用時:方法在.m中實現(xiàn),屬性要在.h中重新聲明,@require方法一定要實現(xiàn)誓军,@optional方法可選;【格式】@interface 子類: 父類 <協(xié)議>
  • 可作為聲明類型
    實現(xiàn)了協(xié)議的類的對象可以傳給一個聲明類型為協(xié)議的參數(shù)
  • 不確定對象類型是否遵循協(xié)議時
if ([obj conformsToProtocol:@protocol(AProtocol)]) {
      //遵守了協(xié)議
}
  • 協(xié)議可繼承

5. 【OC/2-5】類別與擴展

類別

  • 創(chuàng)建新文件實現(xiàn)
    命名規(guī)范:類+類別(首字母大寫)
  • 不可添加實例變量、屬性

擴展

  • 定義和實現(xiàn)均和原來的類寫在一起(.m文件中)
  • 外部不允許訪問(私有)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末棒假,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子僻族,更是在濱河造成了極大的恐慌晴氨,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,430評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異挠锥,居然都是意外死亡蓖租,警方通過查閱死者的電腦和手機油猫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,406評論 3 398
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來电爹,“玉大人秦效,你說我怎么就攤上這事阱州。” “怎么了法梯?”我有些...
    開封第一講書人閱讀 167,834評論 0 360
  • 文/不壞的土叔 我叫張陵夜惭,是天一觀的道長敢会。 經(jīng)常有香客問我塞俱,道長吏垮,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,543評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮媳谁,結(jié)果婚禮上晴音,老公的妹妹穿的比我還像新娘。我一直安慰自己郭计,他們只是感情好庐杨,可當(dāng)我...
    茶點故事閱讀 68,547評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著隐轩,像睡著了一般渤早。 火紅的嫁衣襯著肌膚如雪职车。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,196評論 1 308
  • 那天鹊杖,我揣著相機與錄音悴灵,去河邊找鬼。 笑死骂蓖,一個胖子當(dāng)著我的面吹牛积瞒,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播登下,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼茫孔,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了被芳?” 一聲冷哼從身側(cè)響起缰贝,我...
    開封第一講書人閱讀 39,671評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎畔濒,沒想到半個月后剩晴,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,221評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡篓冲,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,303評論 3 340
  • 正文 我和宋清朗相戀三年李破,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片壹将。...
    茶點故事閱讀 40,444評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡嗤攻,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出诽俯,到底是詐尸還是另有隱情妇菱,我是刑警寧澤,帶...
    沈念sama閱讀 36,134評論 5 350
  • 正文 年R本政府宣布暴区,位于F島的核電站闯团,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏仙粱。R本人自食惡果不足惜房交,卻給世界環(huán)境...
    茶點故事閱讀 41,810評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望伐割。 院中可真熱鬧候味,春花似錦、人聲如沸隔心。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,285評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽硬霍。三九已至帜慢,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間唯卖,已是汗流浹背粱玲。 一陣腳步聲響...
    開封第一講書人閱讀 33,399評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留拜轨,地道東北人密幔。 一個月前我還...
    沈念sama閱讀 48,837評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像撩轰,于是被迫代替她去往敵國和親胯甩。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,455評論 2 359

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