2018 iOS 面試題及答案-2

1但壮、HomeKit陶夜?

是蘋果2014年發(fā)布的智能家居平臺凛驮。

2、什么是 OpenGL条辟、Quartz 2D黔夭?

Quatarz 2d 是Apple提供的基本圖形工具庫宏胯。只是適用于2D圖形的繪制。

OpenGL本姥,是一個跨平臺的圖形開發(fā)庫肩袍。適用于2D和3D圖形的繪制。

3扣草、ffmpeg框架了牛?

ffmpeg 是音視頻處理工具,既有音視頻編碼解碼功能辰妙,又可以作為播放器使用鹰祸。

4、談談 UITableView 的優(yōu)化

1). 正確的復用cell密浑。

2). 設計統(tǒng)一規(guī)格的Cell

3). 提前計算并緩存好高度(布局)蛙婴,因為heightForRowAtIndexPath:是調(diào)用最頻繁的方法;

4). 異步繪制尔破,遇到復雜界面街图,遇到性能瓶頸時,可能就是突破口懒构;

4). 滑動時按需加載餐济,這個在大量圖片展示,網(wǎng)絡加載的時候很管用胆剧!

5). 減少子視圖的層級關(guān)系

6). 盡量使所有的視圖不透明化以及做切圓操作絮姆。

7). 不要動態(tài)的add 或者 remove 子控件。最好在初始化時就添加完秩霍,然后通過hidden來控制是否顯示握巢。

8). 使用調(diào)試工具分析問題伍纫。

5谈宛、如何實行cell的動態(tài)的行高

如果希望每條數(shù)據(jù)顯示自身的行高户秤,必須設置兩個屬性,1.預估行高颠悬,2.自定義行高矮燎。

設置預估行高 tableView.estimatedRowHeight = 200。

設置定義行高 tableView.estimatedRowHeight = UITableViewAutomaticDimension椿疗。

如果要讓自定義行高有效漏峰,必須讓容器視圖有一個自下而上的約束。

6届榄、說說你對 block 的理解

棧上的自動復制到堆上浅乔,block 的屬性修飾符是 copy,循環(huán)引用的原理和解決方案。

7靖苇、說說你對 runtime 的理解

主要是方法調(diào)用時如何查找緩存席噩,如何找到方法,找不到方法時怎么轉(zhuǎn)發(fā)贤壁,對象的內(nèi)存布局悼枢。

8、什么是野指針脾拆、空指針馒索?

野指針:不知道指向了哪里的指針叫野指針。即指針指向不確定名船,指針存的地址是一個垃圾值绰上,未初始化。

空指針:不指向任何位置的指針叫空指針渠驼。即指針沒有指向蜈块,指針存的地址是一個空地址,NULL迷扇。

9百揭、什么是 OOA / OOD / OOP ?

OOA(Object Oriented Analysis) --面向?qū)ο蠓治?/p>

OOD(Object Oriented Design) --面向?qū)ο笤O計

OOP(Object Oriented Programming)--面向?qū)ο缶幊?/p>

10. 多線程是什么

多線程是個復雜的概念,按字面意思是同步完成多項任務蜓席,提高了資源的使用效率器一,從硬件、操作系統(tǒng)厨内、應用軟件不同的角度去看盹舞,多線程被賦予不同的內(nèi)涵,對于硬件隘庄,現(xiàn)在市面上多數(shù)的CPU都是多核的,多核的CPU運算多線程更為出色;從操作系統(tǒng)角度癣亚,是多任務丑掺,現(xiàn)在用的主流操作系統(tǒng)都是多任務的,可以一邊聽歌述雾、一邊寫博客;對于應用來說街州,多線程可以讓應用有更快的回應,可以在網(wǎng)絡下載時玻孟,同時響應用戶的觸摸操作唆缴。在iOS應用中,對多線程最初的理解黍翎,就是并發(fā)面徽,它的含義是原來先做燒水,再摘菜,再炒菜的工作趟紊,會變成燒水的同時去摘菜氮双,最后去炒菜。

11. iOS 中的多線程

iOS中的多線程霎匈,是Cocoa框架下的多線程戴差,通過Cocoa的封裝,可以讓我們更為方便的使用線程铛嘱,做過C++的同學可能會對線程有更多的理解暖释,比如線程的創(chuàng)立,信號量墨吓、共享變量有認識球匕,Cocoa框架下會方便很多,它對線程做了封裝肛真,有些封裝谐丢,可以讓我們創(chuàng)建的對象,本身便擁有線程蚓让,也就是線程的對象化抽象乾忱,從而減少我們的工程,提供程序的健壯性历极。

  • GCD是(Grand Central Dispatch)的縮寫 窄瘟,從系統(tǒng)級別提供的一個易用地多線程類庫,具有運行時的特點趟卸,能充分利用多核心硬件蹄葱。GCD的API接口為C語言的函數(shù),函數(shù)參數(shù)中多數(shù)有Block锄列,關(guān)于Block的使用參看這里图云,為我們提供強大的“接口”,對于GCD的使用參見本文
  • NSOperation與Queue

NSOperation是一個抽象類邻邮,它封裝了線程的細節(jié)實現(xiàn)竣况,我們可以通過子類化該對象,加上NSQueue來同面向?qū)ο蟮乃季S筒严,管理多線程程序丹泉。具體可參看這里:一個基于NSOperation的多線程網(wǎng)絡訪問的項目。

  • NSThread

NSThread是一個控制線程執(zhí)行的對象鸭蛙,它不如NSOperation抽象摹恨,通過它我們可以方便的得到一個線程,并控制它娶视。但NSThread的線程之間的并發(fā)控制晒哄,是需要我們自己來控制的,可以通過NSCondition實現(xiàn)。

參看 iOS多線程編程之NSThread的使用

其他多線程

在Cocoa的框架下揩晴,通知勋陪、Timer和異步函數(shù)等都有使用多線程,(待補充).

12. 在項目什么時候選擇使用GCD硫兰,什么時候選擇NSOperation?

項目中使用NSOperation的優(yōu)點是NSOperation是對線程的高度抽象诅愚,在項目中使用它,會使項目的程序結(jié)構(gòu)更好劫映,子類化NSOperation的設計思路违孝,是具有面向?qū)ο蟮膬?yōu)點(復用、封裝)泳赋,使得實現(xiàn)是多線程支持雌桑,而接口簡單,建議在復雜項目中使用祖今。

項目中使用GCD的優(yōu)點是GCD本身非常簡單校坑、易用,對于不復雜的多線程操作千诬,會節(jié)省代碼量耍目,而Block參數(shù)的使用,會是代碼更為易讀徐绑,建議在簡單項目中使用邪驮。

13 KVO,NSNotification傲茄,delegate及block區(qū)別
  • KVO就是cocoa框架實現(xiàn)的觀察者模式毅访,一般同KVC搭配使用,通過KVO可以監(jiān)測一個值的變化盘榨,比如View的高度變化喻粹。是一對多的關(guān)系,一個值的變化會通知所有的觀察者草巡。

  • NSNotification是通知磷斧,也是一對多的使用場景。在某些情況下捷犹,KVO和NSNotification是一樣的,都是狀態(tài)變化之后告知對方冕末。NSNotification的特點萍歉,就是需要被觀察者先主動發(fā)出通知,然后觀察者注冊監(jiān)聽后再來進行響應档桃,比KVO多了發(fā)送通知的一步枪孩,但是其優(yōu)點是監(jiān)聽不局限于屬性的變化,還可以對多種多樣的狀態(tài)變化進行監(jiān)聽,監(jiān)聽范圍廣蔑舞,使用也更靈活拒担。

  • delegate 是代理,就是我不想做的事情交給別人做攻询。比如狗需要吃飯从撼,就通過delegate通知主人,主人就會給他做飯钧栖、盛飯低零、倒水,這些操作拯杠,這些狗都不需要關(guān)心掏婶,只需要調(diào)用delegate(代理人)就可以了,由其他類完成所需要的操作潭陪。所以delegate是一對一關(guān)系雄妥。
  • block是delegate的另一種形式,是函數(shù)式編程的一種形式依溯。使用場景跟delegate一樣老厌,相比delegate更靈活,而且代理的實現(xiàn)更直觀誓沸。
  • KVO一般的使用場景是數(shù)據(jù)梅桩,需求是數(shù)據(jù)變化,比如股票價格變化拜隧,我們一般使用KVO(觀察者模式)宿百。

  • delegate一般的使用場景是行為,需求是需要別人幫我做一件事情洪添,比如買賣股票垦页,我們一般使用delegate。

  • Notification一般是進行全局通知干奢,比如利好消息一出痊焊,通知大家去買入。

  • delegate是強關(guān)聯(lián)忿峻,就是委托和代理雙方互相知道薄啥,你委托別人買股票你就需要知道經(jīng)紀人,經(jīng)紀人也不要知道自己的顧客逛尚。

  • Notification是弱關(guān)聯(lián)垄惧,利好消息發(fā)出,你不需要知道是誰發(fā)的也可以做出相應的反應绰寞,同理發(fā)消息的人也不需要知道接收的人也可以正常發(fā)出消息到逊。

14 將一個函數(shù)在主線程執(zhí)行的4種方法
  • GCD方法铣口,通過向主線程隊列發(fā)送一個block塊,使block里的方法可以在主線程中執(zhí)行觉壶。

dispatch_async(dispatch_get_main_queue(), ^{      

    //需要執(zhí)行的方法

});

  • NSOperation 方法

NSOperationQueue *mainQueue = [NSOperationQueue mainQueue];  //主隊列

NSBlockOperation *operation = [NSBlockOperation blockOperationWithBlock:^{

    //需要執(zhí)行的方法

}];

[mainQueue addOperation:operation];

  • NSThread 方法

[self performSelector:@selector(method) onThread:[NSThread mainThread] withObject:nil waitUntilDone:YES modes:nil];



[self performSelectorOnMainThread:@selector(method) withObject:nil waitUntilDone:YES];



[[NSThread mainThread] performSelector:@selector(method) withObject:nil];

RunLoop方法

[[NSRunLoop mainRunLoop] performSelector:@selector(method) withObject:nil];

  • RunLoop方法

[[NSRunLoop mainRunLoop] performSelector:@selector(method) withObject:nil];

15脑题、 如何讓計時器調(diào)用一個類方法
  • 計時器只能調(diào)用實例方法,但是可以在這個實例方法里面調(diào)用靜態(tài)方法铜靶。

  • 使用計時器需要注意叔遂,計時器一定要加入RunLoop中,并且選好model才能運行旷坦。scheduledTimerWithTimeInterval方法創(chuàng)建一個計時器并加入到RunLoop中所以可以直接使用掏熬。

  • 如果計時器的repeats選擇YES說明這個計時器會重復執(zhí)行,一定要在合適的時機調(diào)用計時器的invalid秒梅。不能在dealloc中調(diào)用旗芬,因為一旦設置為repeats 為yes,計時器會強持有self捆蜀,導致dealloc永遠不會被調(diào)用疮丛,這個類就永遠無法被釋放。比如可以在viewDidDisappear中調(diào)用辆它,這樣當類需要被回收的時候就可以正常進入dealloc中了誊薄。


 [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timerMethod) userInfo:nil repeats:YES];



-(void)timerMethod

{

//調(diào)用類方法

    [[self class] staticMethod];

}



-(void)invalid

{

    [timer invalid];

    timer = nil;

}

16、 如何重寫類方法

1锰茉、在子類中實現(xiàn)一個同基類名字一樣的靜態(tài)方法

2呢蔫、在調(diào)用的時候不要使用類名調(diào)用,而是使用[self class]的方式調(diào)用飒筑。原理片吊,用類名調(diào)用是早綁定,在編譯期綁定协屡,用[self class]是晚綁定俏脊,在運行時決定調(diào)用哪個方法。

17肤晓、 NSTimer創(chuàng)建后爷贫,會在哪個線程運行。

用scheduledTimerWithTimeInterval創(chuàng)建的补憾,在哪個線程創(chuàng)建就會被加入哪個線程的RunLoop中就運行在哪個線程

自己創(chuàng)建的Timer漫萄,加入到哪個線程的RunLoop中就運行在哪個線程。

18盈匾、 id和NSObject*的區(qū)別

id是一個 objc_object 結(jié)構(gòu)體指針卷胯,定義是


typedef struct objc_object *id

  • id可以理解為指向?qū)ο蟮闹羔槨K衞c的對象 id都可以指向威酒,編譯器不會做類型檢查窑睁,id調(diào)用任何存在的方法都不會在編譯階段報錯,當然如果這個id指向的對象沒有這個方法葵孤,該崩潰還是會崩潰的担钮。
  • NSObject *指向的必須是NSObject的子類,調(diào)用的也只能是NSObjec里面的方法否則就要做強制類型轉(zhuǎn)換尤仍。
  • 不是所有的OC對象都是NSObject的子類箫津,還有一些繼承自NSProxy。NSObject *可指向的類型是id的子集宰啦。
19苏遥、淺談iOS開發(fā)中方法延遲執(zhí)行的幾種方式?
  • Method1. performSelector方法

  • Method2. NSTimer定時器

  • Method3. NSThread線程的sleep

  • Method4. GCD

公用延遲執(zhí)行方法:

- (void)delayMethod{ 

      NSLog(@"delayMethodEnd");

}

Method1:performSelector

[self performSelector:@selector(delayMethod) withObject:nil]

可傳任意類型參數(shù)/ afterDelay:2.0];

注:此方法是一種非阻塞的執(zhí)行方式,未找到取消執(zhí)行的方法赡模。

程序運行結(jié)束

2015-08-31 10:56:59.361 CJDelayMethod[1080:39604] delayMethodStart2015-08-31 10:56:59.363 CJDelayMethod[1080:39604] nextMethod2015-08-31 10:57:01.364 CJDelayMethod[1080:39604] delayMethodEnd

Method2:NSTimer定時器

NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(delayMethod) userInfo:nil repeats:NO];

注:此方法是一種非阻塞的執(zhí)行方式田炭,

取消執(zhí)行方法:- (void)invalidate;即可

程序運行結(jié)束

2015-08-31 10:58:10.182 CJDelayMethod[1129:41106] delayMethodStart2015-08-31 10:58:10.183 CJDelayMethod[1129:41106] nextMethod2015-08-31 10:58:12.185 CJDelayMethod[1129:41106] delayMethodEnd

Method3:NSThread線程的sleep

[NSThread sleepForTimeInterval:2.0];

注:此方法是一種阻塞執(zhí)行方式,建議放在子線程中執(zhí)行漓柑,否則會卡住界面教硫。但有時還是需要阻塞執(zhí)行,如進入歡迎界面需要沉睡3秒才進入主界面時辆布。

沒有找到取消執(zhí)行方式瞬矩。

程序運行結(jié)束

2015-08-31 10:58:41.501 CJDelayMethod[1153:41698] delayMethodStart2015-08-31 10:58:43.507 CJDelayMethod[1153:41698] nextMethod

Method4:GCD

__block ViewController/*主控制器*/ *weakSelf = self;

dispatch_time_t delayTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0/*延遲執(zhí)行時間*/ * NSEC_PER_SEC));



dispatch_after(delayTime, dispatch_get_main_queue(), ^{

    [weakSelf delayMethod];

});`

注:此方法可以在參數(shù)中選擇執(zhí)行的線程,是一種非阻塞執(zhí)行方式锋玲。沒有找到取消執(zhí)行方式景用。

程序運行結(jié)束

2015-08-31 10:59:21.652 CJDelayMethod[1181:42438] delayMethodStart2015-08-31 10:59:21.653 CJDelayMethod[1181:42438] nextMethod2015-08-31 10:59:23.653 CJDelayMethod[1181:42438] delayMethodEnd

20、NSPersistentStoreCoordinator , NSManaged0bjectContext 和NSManaged0bject中的那些需要在線程中創(chuàng)建或者傳遞惭蹂?

答:NSPersistentStoreCoordinator是持久化存儲協(xié)調(diào)者伞插,主要用于協(xié)調(diào)托管對象上下文和持久化存儲區(qū)之間的關(guān)系。NSManagedObjectContext使用協(xié)調(diào)者的托管對象模型將數(shù)據(jù)保存到數(shù)據(jù)庫剿干,或查詢數(shù)據(jù)蜂怎。

20、您是否做過一部的網(wǎng)絡處理和通訊方面的工作置尔?如果有杠步,能具體介紹一下實現(xiàn)策略么

答:使用NSOperation發(fā)送異步網(wǎng)絡請求,使用NSOperationQueue管理線程數(shù)目及優(yōu)先級榜轿,底層是用NSURLConnetion幽歼,

21、你使用過Objective-C的運行時編程(Runtime Programming)么谬盐?如果使用過甸私,你用它做了什么?你還能記得你所使用的相關(guān)的頭文件或者某些方法的名稱嗎飞傀?

答:Objecitve-C的重要特性是Runtime(運行時),在#import <objc/runtime.h> 下能看到相關(guān)的方法皇型,用過objc_getClass()和class_copyMethodList()獲取過私有API;使用


Method method1 = class_getInstanceMethod(cls, sel1);

Method method2 = class_getInstanceMethod(cls, sel2);

method_exchangeImplementations(method1, method2);  

代碼交換兩個方法诬烹,在寫unit test時使用到。

22弃鸦、Core開頭的系列的內(nèi)容绞吁。是否使用過CoreAnimation和CoreGraphics。UI框架和CA唬格,CG框架的聯(lián)系是什么家破?分別用CA和CG做過些什么動畫或者圖像上的內(nèi)容。(有需要的話還可以涉及Quartz的一些內(nèi)容)

答:UI框架的底層有CoreAnimation购岗,CoreAnimation的底層有CoreGraphics汰聋。

UIKit |

------------ |

Core Animation |

Core Graphics |

Graphics Hardware|

23、是否使用過CoreText或者CoreImage等喊积?如果使用過烹困,請談談你使用CoreText或者CoreImage的體驗。

答:CoreText可以解決復雜文字內(nèi)容排版問題注服。CoreImage可以處理圖片韭邓,為其添加各種效果。體驗是很強大溶弟,挺復雜的女淑。

24.NSNotification和KVO的區(qū)別和用法是什么?什么時候應該使用通知辜御,什么時候應該使用KVO鸭你,它們的實現(xiàn)上有什么區(qū)別嗎?如果用protocol和delegate(或者delegate的Array)來實現(xiàn)類似的功能可能嗎擒权?如果可能袱巨,會有什么潛在的問題?如果不能碳抄,為什么愉老?

答:NSNotification是通知模式在iOS的實現(xiàn),

KVO的全稱是鍵值觀察(Key-value observing),其是基于KVC(key-value coding)的剖效,KVC是一個通過屬性名訪問屬性變量的機制嫉入。例如將Module層的變化,通知到多個Controller對象時璧尸,可以使用NSNotification咒林;如果是只需要觀察某個對象的某個屬性,可以使用KVO爷光。

對于委托模式垫竞,在設計模式中是對象適配器模式,其是delegate是指向某個對象的蛀序,這是一對一的關(guān)系欢瞪,而在通知模式中活烙,往往是一對多的關(guān)系。委托模式遣鼓,從技術(shù)上可以現(xiàn)在改變delegate指向的對象瓣颅,但不建議這樣做,會讓人迷惑譬正,如果一個delegate對象不斷改變,指向不同的對象檬姥。

25曾我、你用過NSOperationQueue么?如果用過或者了解的話健民,你為什么要使用NSOperationQueue抒巢,實現(xiàn)了什么?請描述它和G.C.D的區(qū)別和類似的地方(提示:可以從兩者的實現(xiàn)機制和適用范圍來描述)秉犹。

答:使用NSOperationQueue用來管理子類化的NSOperation對象蛉谜,控制其線程并發(fā)數(shù)目。GCD和NSOperation都可以實現(xiàn)對線程的管理崇堵,區(qū)別是 NSOperation和NSOperationQueue是多線程的面向?qū)ο蟪橄笮统稀m椖恐惺褂肗SOperation的優(yōu)點是NSOperation是對線程的高度抽象,在項目中使用它鸳劳,會使項目的程序結(jié)構(gòu)更好狰贯,子類化NSOperation的設計思路,是具有面向?qū)ο蟮膬?yōu)點(復用赏廓、封裝)涵紊,使得實現(xiàn)是多線程支持,而接口簡單幔摸,建議在復雜項目中使用摸柄。

項目中使用GCD的優(yōu)點是GCD本身非常簡單、易用既忆,對于不復雜的多線程操作驱负,會節(jié)省代碼量,而Block參數(shù)的使用尿贫,會是代碼更為易讀电媳,建議在簡單項目中使用。

26庆亡、既然提到G.C.D匾乓,那么問一下在使用G.C.D以及block時要注意些什么?它們兩是一回事兒么又谋?block在ARC中和傳統(tǒng)的MRC中的行為和用法有沒有什么區(qū)別拼缝,需要注意些什么娱局?

答:使用block是要注意,若將block做函數(shù)參數(shù)時咧七,需要把它放到最后衰齐,GCD是Grand Central Dispatch,是一個對線程開源類庫继阻,而Block是閉包耻涛,是能夠讀取其他函數(shù)內(nèi)部變量的函數(shù)。

27瘟檩、對于Objective-C抹缕,你認為它最大的優(yōu)點和最大的不足是什么?對于不足之處墨辛,現(xiàn)在有沒有可用的方法繞過這些不足來實現(xiàn)需求卓研。如果可以的話,你有沒有考慮或者實踐過重新實現(xiàn)OC的一些功能睹簇,如果有奏赘,具體會如何做?

答:最大的優(yōu)點是它的運行時特性太惠,不足是沒有命名空間磨淌,對于命名沖突,可以使用長命名法或特殊前綴解決垛叨,如果是引入的第三方庫之間的命名沖突伦糯,可以使用link命令及flag解決沖突。

28嗽元、你實現(xiàn)過一個框架或者庫以供別人使用么敛纲?如果有,請談一談構(gòu)建框架或者庫時候的經(jīng)驗剂癌;如果沒有淤翔,請設想和設計框架的public的API,并指出大概需要如何做佩谷、需要注意一些什么方面旁壮,來使別人容易地使用你的框架。

答:抽象和封裝谐檀,方便使用抡谐。首先是對問題有充分的了解,比如構(gòu)建一個文件解壓壓縮框架桐猬,從使用者的角度出發(fā)麦撵,只需關(guān)注發(fā)送給框架一個解壓請求,框架完成復雜文件的解壓操作,并且在適當?shù)臅r候通知給是哦難過者免胃,如解壓完成音五、解壓出錯等。在框架內(nèi)部去構(gòu)建對象的關(guān)系羔沙,通過抽象讓其更為健壯躺涝、便于更改。其次是API的說明文檔扼雏。

轉(zhuǎn)自知乎:https://zhuanlan.zhihu.com/p/33695465

最后編輯于
?著作權(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é)果婚禮上癌佩,老公的妹妹穿的比我還像新娘木缝。我一直安慰自己,他們只是感情好围辙,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布我碟。 她就那樣靜靜地躺著,像睡著了一般姚建。 火紅的嫁衣襯著肌膚如雪矫俺。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天,我揣著相機與錄音恳守,去河邊找鬼考婴。 笑死,一個胖子當著我的面吹牛催烘,可吹牛的內(nèi)容都是我干的沥阱。 我是一名探鬼主播,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼伊群,長吁一口氣:“原來是場噩夢啊……” “哼考杉!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起舰始,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤崇棠,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后丸卷,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體枕稀,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年谜嫉,在試婚紗的時候發(fā)現(xiàn)自己被綠了萎坷。 大學時的朋友給我發(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
  • 正文 我出身青樓蹬昌,卻偏偏與公主長得像混驰,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子皂贩,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353