Objective-C 學(xué)習(xí)第九天

一茅姜、

  1. 框架: 系統(tǒng)或者第三方事先寫好的寫很牛X功能的類,把這些類交給我們使用月匣,這些類的集合就叫框架.
    Foundation框架: 是一個包钻洒,有很多類和函數(shù),定義了一些數(shù)據(jù)類型.這個框架中的類都是一些最基礎(chǔ)的類.其他的框架都是基于Foundation框架的.

    UIKit.
    AVFoundation.
    ......

  2. NSString
    1). NSString是一個數(shù)據(jù)類型桶错,保存OC字符串.
    NSString的本質(zhì)是一個類.
    最標準的創(chuàng)建NSString對象的方法:
    NSString *str1 = [NSString new]; NSString *str2 = [[NSString alloc] init]; NSString *str3 = [NSString string];
    使用這種方式創(chuàng)建的字符串是一個空的字符. @""
    NSString 對象是用來存儲字符串的.
    2). NSString是OC中最常用的一個類航唆,所以O(shè)C提供了一種更為快速的創(chuàng)建字符串對象的方式.
    使用前綴@
    @"jack": 本質(zhì)是一個NSString對象胀蛮,存儲的是"jack"這個字符串
    NSString *str1 = @"rose";
    a. @"rose"本質(zhì)是一個NSString對象院刁,存儲的是字符串"rose"
    b. 將這個字符串對象的地址返回賦值給str1指針
    格式控制符%p: 打印指針變量的值,打印地址
    格式控制符%@: 打印指針指向的對象

  3. NSString對象的恒定性
    1). 當(dāng)我們使用簡要的創(chuàng)建字符串對象的時候粪狼,也就是使用OC字符串常量來初始化字符串指針的時候退腥,這個字符串對象是存儲在常量區(qū)的.
    NSString *str = @"jack";
    當(dāng)我們調(diào)用NSString的類方法來創(chuàng)建對象的時候, 創(chuàng)建的對象是存儲在堆區(qū)的.
    NSString *str = [NSString stringWithFormat:@"jack"];
    NSString *str = [NSString new];

    2). 恒定性
    當(dāng)在內(nèi)存中創(chuàng)建一個字符串對象后,這個字符串對象的內(nèi)容就無法更改.
    當(dāng)我們重新為字符串指針初始化值的時候再榄,并不是修改原來的字符串對象狡刘,而是重新的創(chuàng)建一個字符串對象,將這個字符串對象的地址重新賦值給字符串指針變量.

    3). 當(dāng)系統(tǒng)準備要在內(nèi)存中創(chuàng)建字符串對象的時候困鸥,會先檢查內(nèi)存中是否有相同內(nèi)容的字符串對象嗅蔬,如果有直接指向,如果沒有才會重新創(chuàng)建.

    4). 存儲在常量區(qū)的數(shù)據(jù)不會被回收疾就,所以存儲在常量區(qū)的字符串也不會被回收.

  4. NSString類中使用頻率最高的方法
    1). 使用拼接的方式創(chuàng)建一個NSString對象
    + (instancetype)stringWithFormat:(NSString *)format,...

        int age = 10;
        NSString *str = @"jack";
        NSString *newStr = [NSString stringWithFormat:@"大家好澜术,我叫%@,今年%d歲",str,age];
    

    2). 得到字符串的長度
    @property (readonly) NSUInteger length;

        NSString *str = @"jack";
        NSUInteger len = str.length;
    

    3). 得到字符串當(dāng)中指定下標的字符
    - (unichar)characterAtIndex:(NSUInteger)index;
    返回值是unichar類型的猬腰,要打印的話使用%C

        NSString *str = @"jack";
        unichar ch = [str characterAtIndex:2];
        NSLog(@"ch = %C", ch);
    

    4). 判斷兩個字符串的內(nèi)容是否相等
    a. 不能使用==來判斷OC字符串的內(nèi)容是否相同
    b. == 運算符的作用: 比較左右兩邊的數(shù)據(jù)是否相同.
    c. 所以如果我們要比較兩個OC字符串的內(nèi)容是否相同鸟废,不能使用==去比較.因為==比較的是字符串指針變量的值,而我們比較的是字符串的內(nèi)容
    - (BOOL)isEqualToString:(NSString *) aString;
    可以比較字符串的內(nèi)容

        NSString *str1 = @"jack";
        NSString *str2 = @"jack";
        [str1 isEqualToString:str2];
    

    5). 將C語言的字符串轉(zhuǎn)換為OC字符串
    + (instancetype)stringWithUTF8String:(NSString *)string;

        char *str = "jack";
        NSString *str1 = [NSString stringWithUTF8String: str];
    

    6). 將OC字符串轉(zhuǎn)換為C語言字符串
    @property (nullable, readonly) __strong const char *UTF8String;

        NSString *str = @"jack";
        const char *str1 = str.UTF*String;
    
  5. 字符串讀寫
    1). 將一個字符串寫入到磁盤上的某一個文件

    • (BOOL) writeToFile:(NSString *)path atomically:(BOOL)userAuxiliaryFile encoding:(NSStringEncoding)enc error:(NSError **)error;
      參數(shù)1: 將字符串內(nèi)容寫入到哪一個文件之中姑荷,寫上文件的路徑.
      參數(shù)2: YES盒延,先將內(nèi)容寫入到一個臨時文件,如果成功過再搬到指定的目錄; NO,直接將內(nèi)容寫入到指定的文件鼠冕,不安全添寺,效率高
      參數(shù)3: 指定寫入的時候的編碼.一般情況下使用UTF8. NSUTF8StringEncoding
      參數(shù)4: 二級指針,要傳遞一個NSError指針的地址.如果寫入成功懈费,這個指針的值就是nil计露,如果失敗,這個指針就會指向一個錯誤對象,這個對象描述了發(fā)生錯誤的信息. err.localizedDescription中存儲發(fā)生錯誤的信息
      返回值是BOOL類型薄坏,代表是否寫入成功.
        NSString *str = @"jack";
        NSError *err;
        [str writeToFile:@"/Users/Itcast/Desktop/abc.txt", atomically:NO encoding:NSUTF8StringEncoding error:&err];
    

    2). 從磁盤文件讀取內(nèi)容

    • (instancetype) stringWithContentsOfFile:(NSString *)path encoding:(NSStringEncoding)enc error:(NSError **)error;
      參數(shù)1:文件的路徑
      參數(shù)2:使用的編碼NSUTF8StringEncoding
      參數(shù)3:錯誤對象
        NSError *err;
        [NSString stringWithContentsOfFile:@"/Users/Itcast/Desktop/abc.txt" encoding:NSUTF8StringEncoding error:&err];
    
  6. 使用URL來讀寫字符串?dāng)?shù)據(jù).
    1). 優(yōu)勢: 皆可以讀取本地磁盤文件趋厉,還可以讀寫網(wǎng)頁文件、ftp服務(wù)器文件
    2). 不同類型的URL地址的寫法
    a. 本地磁盤文件: file://+路徑---->file:///Users/Itcast/Desktop/abc.txt
    b. 網(wǎng)頁地址: http://www.baidu.com/
    c. ftp服務(wù)器文件的地址: ftp://server.itcast.cn/1.txt

    1. 將不同類型的地址封裝在NSURL對象中
      a. 從指定資源路徑讀取文本內(nèi)容
      • (nullable instancetype)stringWithContentsOfURL:(NSURL *)url encoding:(NSStringEncoding)enc error:(NSError **)error;
        b. 將字符串的內(nèi)容寫入到資源路徑中
      • (BOOL)writeToURL:(NSURL *)url atomically:(BOOL)useAuxiliaryFile encoding:(NSStringEncoding)enc error:(NSError **)error;
        c. 如果要向網(wǎng)頁或者ftp寫內(nèi)容要有權(quán)限.
        NSURL *u1 = [NSURL URLWithString:@"http://www.itcast.cn"];
        NSString *str = [NSString stringWithContentsOfURL:u1 encoding:NSUTF8StringEncoding error:nil];
    
        NSURL *u1 = [NSURL URLWithString:@"file:///Users/Itcast/Desktop/abc.txt"];
        NSString *str = @"hehehe";
        BOOL res = [str writeToURL:u1 atomically:NO encoding:NSUTF8StringEncoding error:nil];
    
    
  7. 字符串比較
    1). 不忽略大小寫

    • (NSComparisonResult)compare:(NSString *)string;
        NSString *str1 = @"hehehe";
        NSString *str2 = @"jack";
        NSComparisonResult res = [str compare:str2];
        swith(res){
            case NSOrderedAscending://str1小
            break;
            case NSOrderedSame://一樣大
            break;
            case NSOrderedDescending://str2小
            break;
            default:
            break;
        }
    

    2). 忽略大小寫

        NSString *str1 = @"hehehe";
        NSString *str2 = @"JACK";
    
        NSComparisonResult res = [str compare:str2 option:NSCaseInsensitiveSearch];
        swith(res){
            case NSOrderedAscending://str1小
            break;
            case NSOrderedSame://一樣大
            break;
            case NSOrderedDescending://str2小
            break;
            default:
            break;
        }
    

    3). 比較字符串中的數(shù)字

        NSString *str1 = @"hehehe001";
        NSString *str2 = @"hehehe002";
    
        NSComparisonResult res = [str compare:str2 option:NSNumericSearch];// 只能比格式固定的
        swith(res){
            case NSOrderedAscending://str1小
            break;
            case NSOrderedSame://一樣大
            break;
            case NSOrderedDescending://str2小
            break;
            default:
            break;
        }
    

    4). 判斷是否以某個字符串開頭

        NSString *str = @"http://www.baidu.com/";
        BOOL res = [str hasPrefix:@"http://"];
    

    5). 判斷是否以某個字符串結(jié)束

        NSString *str = @"/Users/Apple/Music/我們不一樣.mp3";
        BOOL res = [str hasSuffix:@".mp3"];
    
  8. 在主串中搜索子串
    1). 從前往后
    - (NSRange) rangeOfString:(NSString *)searchString;
    返回值NSRange類型的結(jié)構(gòu)體變量
    typedef struct _NSRange{ NSUInteger location;//代表子串在主串出現(xiàn)的下標 NSUInteger length;//代表子串在主串中匹配的長度 } NSRange;
    NSString *str = @"i love itcast!"; // 在str字符串中搜索@"love"出現(xiàn)的范圍 NSRange range = [str rangeOfString:@"love"]; if(range.location==NSNotFound){ // 沒有找到 } else { // 找到了 } 或者 if(range.length==0){ // 沒有找到 } else { // 找到了 }
    2). 從后往前
    NSString *str = @"i love itcast love!"; // 在str字符串中搜索@"love"出現(xiàn)的范圍 NSRange range = [str rangeOfString:@"love" options: NSBackwardsSearch]

  9. NSRange結(jié)構(gòu)體
    1). 是Foundation框架中定義的一個結(jié)構(gòu)體
    typedef struct _NSRange{ NSUInteger location;//代表子串在主串出現(xiàn)的下標 NSUInteger length;//代表子串在主串中匹配的長度 } NSRange;
    NSRange range;
    // 這個結(jié)構(gòu)體變量一般情況下用來表示一段范圍胶坠,特別用在子串在主串中的范圍.
    2). 聲明并初始化結(jié)構(gòu)體變量的方式
    a. 最原始的方式
    NSRange range; range.location = 3; range.length = 4;
    b. 第二種方式: NSRange range = {3, 7};
    c. 第三種方式: NSRange range = {.location = 3, .length=7};
    d. Foundation框架中定義了一個函數(shù)君账,這個函數(shù)可以快速的創(chuàng)建一個NSRange結(jié)構(gòu)體.
    NSMakeRange(loc, len);返回一個指定屬性的NSRange結(jié)構(gòu)體變量
    NSRange range = NSMakeRange(3,7);
    5. 可以將NSRange結(jié)構(gòu)體變量轉(zhuǎn)換為NSString.
    NSRange range = NSMakeRange(3,7);
    NSString *str = NSStringFromRange(range);

  10. 字符串截取
    1). 取到字符串中的一部分

    • (NSString *)substringFromIndex(NSUIntege)from;
      從指定的下標處一直截取到最后
        NSString *str = @"背景連鎖酒店分開計算懶死了";
        NSString *newStr = [str substringFromIndex:3];
    

    2). 從第0個開始截取指定的個數(shù)

    • (NSString *)substringToIndex(NSUIntege)to;
      3). 從指定位置截取指定長度的字符串
    • (NSString *)substringWithRange(NSRange)range;
  11. 字符串替換
    1).

    • (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *)replacement;
      將字符串中第一個參數(shù)替換為第二個參數(shù),原來的指針指向的內(nèi)容是不會變的沈善,新串是以方法的返回值返回的.
        NSString *str = @"背景連鎖酒店分開計算懶死了";
        NSString *newStr = [str stringByReplacingOccurrencesOfString:@"背景" withString:@"廣州"];
    
  12. 字符串?dāng)?shù)據(jù)轉(zhuǎn)換為其他類型
    @property (readonly)double doubleValue;
    @property (readonly)float floatValue;
    @property (readonly)int intValue;
    @property (readonly)NSUINteger integerValue;
    @property (readonly)long long longLongValue;
    @property (readonly)BOOL boolValue;

    轉(zhuǎn)換注意:

  13. 其他
    1). 去掉字符串前后的空格

        NSString *str = @" Jack ";
        [str stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
    

    2). 將字符串轉(zhuǎn)換為大寫或者小寫

        NSString *str = @" Jack ";
        [str uppercaseString];
        [str lowercaseString];
    

二霎匈、

  1. NSMutableString
    1). 是Foundation框架中的一個類,從NSString繼承,是用來存儲字符串?dāng)?shù)據(jù)的.
    2). NSMutableString在父類NSString的基礎(chǔ)之上做擴展,存儲在NSMutableString對象中的數(shù)據(jù)具有可變性杨何,不會新創(chuàng)建對象.

  2. NSMutableString的用法
    1). 創(chuàng)建對象

        NSMutableString *str = [NSMutableString string];
        [str appendString:@"jack"];
    

    2). 往可變字符串對象中追加字符串

    • (void)appendString:(NSString *)aString;// 直接追加內(nèi)容
    • (void)appendFormat:(NSString *)format...;// 以拼接的方式往可變字符串對象中追加內(nèi)容
      3). 創(chuàng)建NSMutableString對象時俺亮,不能使用如下方式:
        NSMutableString *str = @"jack";
    

    4). NSMutableString做大批量的字符串拼接,速度快罩润,因為NSMutableString只有一個玖翅,每次修改的時候直接修改對象的內(nèi)容

  3. 使用建議
    1). 平時使用,還是使用NSString割以,因為效率高
    2). 大批量的數(shù)據(jù)拼接的時候使用NSMutableString
    10次以上使用NSMutableString.

  4. NSArray
    1). 是Foundation框架中的一個類,用來存儲多個數(shù)據(jù)金度,具備數(shù)組功能,所以NSArray是OC中的數(shù)組
    2). 特點:
    a. 只能存儲OC對象
    b. 長度固定,一旦NSArray數(shù)組創(chuàng)建完畢之后,元素的長度固定严沥,無法新增猜极、刪除元素.
    c. 每一個元素都是緊密相連的,每一個元素仍然有自己的下標.
    d. 元素的類型是id類型的
    3). NSArray數(shù)組的創(chuàng)建
    1). 因為是一個類消玄,所以就是創(chuàng)建NSArray對象.
    NSArray *arr1 = [NSArray new]; NSArray *arr2 = [[NSArray alloc] init]; NSArray *arr3 = [NSArray array];
    這樣創(chuàng)建出來的NSArray數(shù)組的元素的個數(shù)是0個跟伏,因為長度固定,所以沒有任何意義.
    2). 創(chuàng)建數(shù)組的同時指定一個數(shù)組的元素翩瓜,仍然沒有意義
    NSArray *arr1 = [NSArray arrayWithObject:@"jack"];
    3). 最常用創(chuàng)建NSArray數(shù)組的方式.
    + (instancetype)arrayWithObjects:(ObjectType)firstObj,...
    NSArray *arr1 = [NSArray arrayWithObjects:@"jack",@"rose",@"lili",nil];
    4). 創(chuàng)建NSArray簡要方式
    NSArray *arr = @[@"jack", @"rose", @"lili"];
    5). 使用注意
    a. 只能存儲OC對象受扳,不能存儲非OC對象
    b. 將元素寫完之后,最后要寫一個nil奥溺,表示元素到此結(jié)束了

  5. NSArray數(shù)組的編譯
    1). for循環(huán)
    原理: 將下標挨個遍歷出來

        NSArray *arr = @[@"jack",@"rose"];
        for(int i=0;i<arr.count;i++){
            //NSLog(@"%@",arr[i]);
            NSLog(@"%@", [arr objectAtIndex:i]);
        }
    

    2). 使用增強for循環(huán)
    a. 語法格式:
    for(元素類型 變量名 in 數(shù)組名){
    直接通過變量名拿到數(shù)組中的每一個元素
    }
    NSArray *arr = @[@"jack",@"rose"]; for(NSString *str in arr){ NSLog(@"%@", str); }
    b. 聲明在for()中的變量叫做迭代變量
    c. 執(zhí)行變量
    將數(shù)組中的第一個元素的值賦值給迭代變量辞色,執(zhí)行循環(huán)體
    ...
    結(jié)束循環(huán)
    d. 語法總結(jié)
    -> 迭代變量的類型和數(shù)組中的元素的類型保持一致
    -> 迭代變量的名稱可以任意取
    -> in是固定的
    -> 遍歷那個數(shù)組就將數(shù)組寫在in后面
    -> 循環(huán)體里面,迭代變量的值就是元素的值

     當(dāng)NSArray數(shù)組中存儲的數(shù)據(jù)類型不一致的時候浮定,迭代變量的類型建議使用id類型
    
    1. 使用block遍歷
      • (void) enumerateObjectsUsingBlock:(void (^)OjbectType obj, NSUInteger idx, BOOL *stop))block;
        這是一個方法相满,這個方法作用來遍歷數(shù)組中的每一個元素
          NSArray *arr = @[@"jack",@"rose"];
          // 將arr數(shù)組中的每一個元素遍歷出來
          [arr enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop){
              NSLog(@"%@", obj);
              // 如果想停止循環(huán),就將*stop設(shè)置為YES
          }]; 
      
  6. NSArray和NSString
    1). 將數(shù)組中元素連接起來組成一個新的字符串

    • (NSString *)componentsJoinedByString:(NSString *)separator
      參數(shù): 連接符
        NSArray *arr = @[@"jack", @"rose", @"lili"];
        NSString *str = [arr componentsJoinedByString:@"#"];
    

    2). 將字符串按指定分隔符分割

        NSString *str = @"北京桦卒,昌平區(qū)立美,傳智";
        // 使用字符串進行分割
        NSArray *arr = [str componentsSeparatedByString:","];
    
  7. NSMutableArray是NSArray的子類
    1). NSMutableArray仍然是一個數(shù)組方灾,就被NSArray的特點建蹄,只能存儲OC對象碌更,每一個元素是緊密相連的。
    2). NSMutableArray相對于父類做的擴展洞慎,NSMutableArray數(shù)組的元素可以動態(tài)的新增和刪除,其他用法與NSArray一致痛单。
    所以:
    NSArray數(shù)組一旦創(chuàng)建,其元素的個數(shù)就固定劲腿,無法新增與刪除
    NSMutableArray數(shù)組旭绒,可以新增刪除
    3). NSMutableArray數(shù)組的創(chuàng)建
    NSMutableArray *arr1 = [NSMutableArray new]; NSMutableArray *arr2 = [[NSMutableArray alloc] init]; NSMutableArray *arr3 = [NSMutableArray array];
    這樣創(chuàng)建出來的數(shù)組對象,數(shù)組的元素是0焦人,但是有意義挥吵,可以動態(tài)的新增,刪除.
    最容易犯錯:這樣寫不可以
    NSMutableArray *arr1 = @[@"jack", @"rose", @"lili"];

  8. 新增與刪除

    1. 新增
      a. // 將傳入的參數(shù)作為數(shù)組的元素添加進去
      - (void)addObject:(ObjectType)anObject;
      // 將另外一個數(shù)組中的每一個元素添加到可變數(shù)組中
      - (void)addObjectsFromArray:(NSArray<ObjectType> *)otherArray;
      NSMutableArray *arr1 = [NSMutableArray new]; [arr1 addObject:@"jack"]; NSArray *arr = @[@"jack", @"rose", @"lili"]; [arr1 addObjectsFromArray:arr];
      b. 在可變數(shù)組中指定的數(shù)組中插入一個元素
      - (void)insertObject:(ObjectType)anObject atIndex:(NSUInteger)index;
      [arr insertObject:@"lilei", anIndex:1];
    2. 刪除
      a. 刪除
      // 刪除指定下標的元素
      - (void) removeObjectAtIndex:(NSUInteger)index;
      NSMutableArray *arr1 = [NSMutableArray new]; [arr1 addObject:@"jack"]; NSArray *arr = @[@"jack", @"rose", @"lili"]; [arr1 addObjectsFromArray:arr]; [arr removeObjectAtIndex:1];
      b. 刪除特定的元素
      - (void)removeObject:(ObjectType)anObject;
      NSMutableArray *arr1 = [NSMutableArray new]; [arr1 addObject:@"jack"]; NSArray *arr = @[@"jack", @"rose", @"lili"]; [arr1 addObjectsFromArray:arr]; [arr removeObject:@"lili"];
      c. 刪除指定范圍內(nèi)的元素
      - (void)removeObject:(ObjectType)anObject inRange:(NSRange)range;
      NSMutableArray *arr1 = [NSMutableArray new]; [arr1 addObject:@"jack"]; NSArray *arr = @[@"jack", @"rose", @"lili"]; [arr1 addObjectsFromArray:arr]; [arr removeObject:@"lili" inRange:NSMakeRange(0, 3)];
      d. 刪除最后一個元素
      - (void)removeLastObject;
      NSMutableArray *arr1 = [NSMutableArray new]; [arr1 addObject:@"jack"]; NSArray *arr = @[@"jack", @"rose", @"lili"]; [arr1 addObjectsFromArray:arr]; [arr removeLastObject];
      e. 刪除所有
      - (void)removeAllObjects;
      NSMutableArray *arr1 = [NSMutableArray new]; [arr1 addObject:@"jack"]; NSArray *arr = @[@"jack", @"rose", @"lili"]; [arr1 addObjectsFromArray:arr]; [arr removeAllObjects];
  9. NSNumber
    1). 作用: 包裝基本數(shù)據(jù)類型

        NSNumber *number = [NSNumber numberWithInt:10];
        等價于
        NSNumber *number = @10;
    
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末花椭,一起剝皮案震驚了整個濱河市忽匈,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌矿辽,老刑警劉巖丹允,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異嗦锐,居然都是意外死亡嫌松,警方通過查閱死者的電腦和手機沪曙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門奕污,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人液走,你說我怎么就攤上這事碳默。” “怎么了缘眶?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵嘱根,是天一觀的道長。 經(jīng)常有香客問我巷懈,道長该抒,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任顶燕,我火速辦了婚禮凑保,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘涌攻。我一直安慰自己欧引,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布恳谎。 她就那樣靜靜地躺著芝此,像睡著了一般憋肖。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上婚苹,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天岸更,我揣著相機與錄音,去河邊找鬼膊升。 笑死坐慰,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的用僧。 我是一名探鬼主播结胀,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼责循!你這毒婦竟也來了糟港?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤院仿,失蹤者是張志新(化名)和其女友劉穎秸抚,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體歹垫,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡剥汤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了排惨。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吭敢。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖暮芭,靈堂內(nèi)的尸體忽然破棺而出鹿驼,到底是詐尸還是另有隱情,我是刑警寧澤辕宏,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布畜晰,位于F島的核電站,受9級特大地震影響瑞筐,放射性物質(zhì)發(fā)生泄漏凄鼻。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一聚假、第九天 我趴在偏房一處隱蔽的房頂上張望块蚌。 院中可真熱鬧,春花似錦魔策、人聲如沸匈子。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽虎敦。三九已至游岳,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間其徙,已是汗流浹背胚迫。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留唾那,地道東北人访锻。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像闹获,于是被迫代替她去往敵國和親期犬。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,577評論 2 353

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