iOS各個(gè)版本常見適配

@(IOS各個(gè)版本適配)

[TOC]

一瘦锹、iOS12(Xcode10)

1.1、升級(jí)Xcode10后項(xiàng)目報(bào)錯(cuò)

不允許多個(gè)info.plist

Xcode10是默認(rèn)選中的最新的New Build System(Default),在這個(gè)編譯系統(tǒng)的環(huán)境下颖系,不允許多個(gè)info.plist

解決辦法一:(推薦)

把build system切換到 Legacy Build System,換言之就是切換成老的編譯系統(tǒng),就OK了秃踩。

Xcode->File->Project Settings-> Build System -> Legacy Build System.

解決辦法二:

刪除其他info.plist文件。

iOS 12移除了libstdc++, 用libc++替代

Xcode10中l(wèi)ibstdc++相關(guān)的3個(gè)庫(kù)(libstdc++业筏、libstdc++.6憔杨、libstdc++6.0.9)應(yīng)該都是被徹底廢棄了,如果你使用的三方庫(kù)中有依賴蒜胖,請(qǐng)盡快和提供方溝通消别,告知他們遷移吧。如果自己開發(fā)使用翠勉,也盡快考慮遷移的事宜吧妖啥。

1.2、iPhone XR不支持3D-Touch

OC檢測(cè)代碼

1if(self.traitCollection.forceTouchCapability?==?UIForceTouchCapabilityAvailable)?{

2?

3}

swift檢測(cè)代碼

1self.traitCollection.forceTouchCapability?==?.availible

二对碌、iOS11(Xcode9)

2.1荆虱、安全區(qū)域(SafeArea)

iOS11為UIViewController和UIView增加了兩個(gè)新的屬性safeAreaInsets和safeAreaLayoutGuide

safeAreaInsets 適用于手動(dòng)計(jì)算.

safeAreaLayoutGuide 適用于自動(dòng)布局.

1UIViewController中新增:

2-?(void)viewSafeAreaInsetsDidChange;

3UIView中新增:

4-?(void)viewSafeAreaInsetsDidChange;

在Storyboard使用Safe Area最低只支持iOS9,iOS8的用戶就要放棄了

當(dāng)UIViewController調(diào)用- (void)viewDidLoad時(shí)它的所有子視圖的safeAreaInsets屬性都等于UIEdgeInsetsZero怀读。

viewSafeAreaInsetsDidChange的調(diào)用時(shí)機(jī)如下:

?1诉位、viewDidLoad

?2、viewWillAppear

?3菜枷、viewSafeAreaInsetsDidChange

?4苍糠、viewWillLayoutSubviews

?5、viewDidAppear

只有在調(diào)用viewSafeAreaInsetsDidChange后啤誊,才能獲得view以及viewController的SafeArea(UIEdgeInsets)岳瞭。因此在viewDidload中根據(jù)SafeArea設(shè)置界面會(huì)有問(wèn)題。

iPhone X:有導(dǎo)航欄的時(shí)候可以+44

豎屏 safeAreaInsets = (top = 44, left = 0, bottom = 34, right = 0)

橫屏 safeAreaInsets = (top = 0, left = 44, bottom = 21, right = 44)

01#import"Adaptive11VC.h"

02staticinline?UIEdgeInsets?sgm_safeAreaInset(UIView?*view)?{

03????if(@available(iOS?11.0,?*))?{

04????????returnview.safeAreaInsets;

05????}

06????returnUIEdgeInsetsZero;

07}

08?

09@interfaceAdaptive11VC?()

10@end

11@implementation?Adaptive11VC

12-?(void)viewDidLoad?{

13????[superviewDidLoad];

14}

15-?(void)testSafeArea?{

16????UIEdgeInsets?safeAreaInsets?=?sgm_safeAreaInset(self.view);

17????NSLog(@"safeAreaInsets?=?%@",?NSStringFromUIEdgeInsets(safeAreaInsets));

18}

19-?(void)viewSafeAreaInsetsDidChange?{

20????[superviewSafeAreaInsetsDidChange];

21????[self?testSafeArea];

22}

23@end

2.2蚊锹、UIScrollView

iOS 11廢棄了UIViewController的automaticallyAdjustsScrollViewInsets屬性瞳筏,新增了contentInsetAdjustmentBehavior屬性,所以當(dāng)超出安全區(qū)域時(shí)系統(tǒng)自動(dòng)調(diào)整了SafeAreaInsets牡昆,進(jìn)而影響了adjustedContentInset姚炕,在iOS11中決定tableView內(nèi)容與邊緣距離的是adjustedContentInset,所以需要設(shè)置UIScrollView的contentInsetAdjustmentBehavior屬性丢烘。

01//?方式一:(不推薦)修改額外的安全區(qū)域

02if(@available(iOS?11.0,?*))?{

03????self.additionalSafeAreaInsets?=?UIEdgeInsetsMake(-44,?0,?0,?0);

04}

05else{

06????//?Fallback?on?earlier?versions

07}

08//?方式二:(推薦)設(shè)置為不自動(dòng)調(diào)整

09if(@available(iOS?11.0,?*))?{

10????//?作用于指定的UIScrollView

11????self.tableView.contentInsetAdjustmentBehavior?=?UIScrollViewContentInsetAdjustmentNever;

12????//?作用與所有的UIScrollView

13????UIScrollView.appearance.contentInsetAdjustmentBehavior?=?UIScrollViewContentInsetAdjustmentNever;

14}

15else{

16????self.automaticallyAdjustsScrollViewInsets?=?NO;

17}

2.3柱宦、tableview問(wèn)題

iOS11開始UITableView開啟了自動(dòng)估算行高,estimatedRowHeight estimatedSectionHeaderHeight estimatedSectionFooterHeight三個(gè)高度估算屬性由默認(rèn)的0變成了UITableViewAutomaticDimension播瞳,如果不實(shí)現(xiàn)-tableView: viewForFooterInSection: 和 -tableView: viewForHeaderInSection:掸刊,那么estimatedRowHeight estimatedSectionHeaderHeight estimatedSectionFooterHeight三個(gè)高度估算屬性由默認(rèn)的0變成了UITableViewAutomaticDimension,導(dǎo)致高度計(jì)算不對(duì)赢乓,會(huì)產(chǎn)生空白痒给。解決方法是實(shí)現(xiàn)對(duì)應(yīng)方法或吧這三個(gè)屬性設(shè)為0。

2.4骏全、LocalAuthentication 本地認(rèn)證

本地認(rèn)證框架提供了從具有指定安全策略(密碼或生物學(xué)特征)的用戶請(qǐng)求身份驗(yàn)證的功能苍柏。例如,要求用戶僅使用Face ID或Touch ID進(jìn)行身份驗(yàn)證姜贡,可使用以下代碼:

01#import/**

02?檢測(cè)TouchID是否可用

03?*/

04-?(void)checkBiometrics?{

05????LAContext?*context?=?[[LAContext?alloc]?init];

06????BOOL?success?=?[context?canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics

07????????????????????????????????????????error:nil];

08????if(?success?)?{

09????????NSLog(@"can?use");

10????}

11????else{

12????????NSLog(@"can`t?use?");

13????}

14}

15/**

16?在驗(yàn)證TouchID可用的情況下使用

17?*/

18-?(void)excuteBiometrics?{

19????LAContext?*context?=?[[LAContext?alloc]?init];

20????context.localizedFallbackTitle?=?@"自定義標(biāo)題";

21????[context?evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics

22????????????localizedReason:@"為什么使用TouchID寫這里"

23??????????????????????reply:^(BOOL?success,?NSError?*?_Nullable?error)?{

24????????if(?success?)?{

25????????????//?指紋驗(yàn)證成功

26????????}

27????????else{

28????????????switch(error.code)?{

29????????????????caseLAErrorUserFallback:{

30????????????????????NSLog(@"用戶選擇輸入密碼");

31????????????????????break;

32????????????????}

33????????????????caseLAErrorAuthenticationFailed:{

34????????????????????NSLog(@"驗(yàn)證失敗");

35????????????????????break;

36????????????????}

37????????????????caseLAErrorUserCancel:{

38????????????????????NSLog(@"用戶取消");

39????????????????????break;

40????????????????}

41????????????????caseLAErrorSystemCancel:{

42????????????????????NSLog(@"系統(tǒng)取消");

43????????????????????break;

44????????????????}

45????????????????//?以下三種情況如果提前檢測(cè)TouchID是否可用就不會(huì)出現(xiàn)

46????????????????caseLAErrorPasscodeNotSet:{

47????????????????????break;

48????????????????}

49????????????????caseLAErrorTouchIDNotAvailable:{

50????????????????????break;

51????????????????}

52????????????????caseLAErrorTouchIDNotEnrolled:{

53????????????????????break;

54????????????????}

55????????????????default:

56????????????????????break;

57????????????}

58????????}

59????}];

60}

2.5试吁、啟動(dòng)圖的適配

方法一:通過(guò)LaunchScreen.storyboard方式啟動(dòng)

方法二:使用Assets中的LaunchImage

給Brand Assets添加一張1125*2436大小的圖片

打開Assets.xcassets文件夾,找到Brand Assets

右鍵Show in Finder

添加一張1125*2436大小的圖片

修改Contents.json文件,添加如下內(nèi)容

1{

2"extent":?"full-screen",

3"idiom":?"iphone",

4"subtype":?"2436h",

5"filename":?"1125_2436.png",

6"minimum-system-version":?"11.0",

7"orientation":?"portrait",

8"scale":?"3x"

9}

2.6楼咳、定位相關(guān)

在 iOS 11 中必須支持 When In Use 授權(quán)模式(NSLocationWhenInUseUsageDescription)熄捍,在 iOS 11 中,為了避免開發(fā)者只提供請(qǐng)求 Always 授權(quán)模式這種情況母怜,加入此限制余耽,如果不提供When In Use 授權(quán)模式,那么 Always 相關(guān)授權(quán)模式也無(wú)法正常使用苹熏。

如果要支持老版本碟贾,即 iOS 11 以下系統(tǒng)版本币喧,那么建議在 info.plist 中配置所有的 Key(即使

1NSLocationAlwaysUsageDescription?在?iOS?11及以上版本不再使用):

2NSLocationWhenInUseUsageDescription

3NSLocationAlwaysAndWhenInUseUsageDescription

4NSLocationAlwaysUsageDescription

5NSLocationAlwaysAndWhenInUseUsageDescription??//?為?iOS?11?中新引入的一個(gè)?Key。

2.7袱耽、iOS11中 UIKit’s Bars 上的變化

三杀餐、iOS10(Xcode8)

3.1、(Why朱巨?Safe史翘!)插件取消

Xcode8取消了三方插件(很多優(yōu)秀的插件,本來(lái)可以顯著提高效率)的功能冀续,使用Extension代替

Xcode 8 Extension 推薦

3.2琼讽、證書問(wèn)題

為了方便用戶來(lái)管理,提供Automatically manage signing洪唐。需要輸入開發(fā)者賬號(hào)跨琳!如果沒有賬號(hào)也沒關(guān)系,在下面也可以選擇Debug桐罕、Realease、inHouse模式下對(duì)應(yīng)的證書也可以桂敛!

3.3功炮、隱私數(shù)據(jù)訪問(wèn)問(wèn)題

iOS10,蘋果加強(qiáng)了對(duì)隱私數(shù)據(jù)的保護(hù)术唬,要對(duì)隱私數(shù)據(jù)權(quán)限做一個(gè)適配薪伏,iOS10調(diào)用相機(jī),訪問(wèn)通訊錄粗仓,訪問(wèn)相冊(cè)等都要在info.plist中加入權(quán)限訪問(wèn)描述嫁怀,不然之前你們的項(xiàng)目涉及到這些權(quán)限的地方就會(huì)直接crash掉。

解決辦法:

只需要在info.plist添加NSContactsUsageDescription的key, value自己隨意填寫就可以,這里列舉出對(duì)應(yīng)的key(Source Code模式下):

1NSPhotoLibraryUsageDescriptionApp需要您的同意,才能訪問(wèn)相冊(cè)NSCameraUsageDescriptionApp需要您的同意,才能訪問(wèn)相機(jī)NSMicrophoneUsageDescriptionApp需要您的同意,才能訪問(wèn)麥克風(fēng)NSLocationUsageDescriptionApp需要您的同意,才能訪問(wèn)位置NSLocationWhenInUseUsageDescriptionApp需要您的同意,才能在使用期間訪問(wèn)位置NSLocationAlwaysUsageDescriptionApp需要您的同意,才能始終訪問(wèn)位置NSCalendarsUsageDescriptionApp需要您的同意,才能訪問(wèn)日歷NSRemindersUsageDescriptionApp需要您的同意,才能訪問(wèn)提醒事項(xiàng)NSMotionUsageDescriptionApp需要您的同意,才能訪問(wèn)運(yùn)動(dòng)與健身NSHealthUpdateUsageDescriptionApp需要您的同意,才能訪問(wèn)健康更新?NSHealthShareUsageDescriptionApp需要您的同意,才能訪問(wèn)健康分享NSBluetoothPeripheralUsageDescriptionApp需要您的同意,才能訪問(wèn)藍(lán)牙NSAppleMusicUsageDescriptionApp需要您的同意,才能訪問(wèn)媒體資料庫(kù)

3.4借浊、跳轉(zhuǎn)到app內(nèi)的隱私數(shù)據(jù)設(shè)置頁(yè)面

iOS 10 干掉了所有系統(tǒng)設(shè)置的 URL Scheme塘淑,這意味著你再也不可能直接跳轉(zhuǎn)到系統(tǒng)設(shè)置頁(yè)面(比如 WiFi、蜂窩數(shù)據(jù)蚂斤、定位等)存捺。

跳轉(zhuǎn)方式

方式一:prefs:root=某項(xiàng)服務(wù) 適用于 小于 iOS10的系統(tǒng);

NSURL *url = [NSURL URLWithString:@"prefs:root=WIFI"];

方式二:prefs:root=bundleID 適用于 大于等于iOS8系統(tǒng)曙蒸,小于iOS10的系統(tǒng)

NSURL *url = [NSURL URLWithString:@"prefs:root=bundleID"];

方式三:UIApplicationOpenSettingsURLString 適用于 大于等于iOS8的系統(tǒng)

NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];

01//?iOS系統(tǒng)版本?>=?10.0

02{

03????NSURL?*url?=?[NSURL?URLWithString:UIApplicationOpenSettingsURLString];

04????if([[UIApplication?sharedApplication]?canOpenURL:url])?{

05????????[[UIApplication?sharedApplication]?openURL:url];

06????}

07}

08return;

09//?iOS系統(tǒng)版本?>=?10.0

10//?But!?不建議這樣做哦捌治,官方文檔中說(shuō)過(guò):

11//?`URL?is?now?considered?a?private?API?and?use?will?result?in?app?rejection`.

12//?雖然是有可能躲過(guò)蘋果的檢測(cè),但是蘋果如果發(fā)現(xiàn)你這樣用了纽窟,app上架是有被拒的風(fēng)險(xiǎn)的.

13{

14????NSURL?*url?=?[NSURL?URLWithString:@"APP-Prefs:root=WIFI"];

15????if([[UIApplication?sharedApplication]?canOpenURL:url])?{

16????????if(@available(iOS?10.0,?*))?{

17????????????[[UIApplication?sharedApplication]?openURL:url?

18??????????????options:@{}?

19????completionHandler:nil];

20????????}?else{

21????????????//?Fallback?on?earlier?versions

22????????}

23????}

24}

25//?iOS系統(tǒng)版本?<?10.0

26{

27????NSURL?*url?=?[NSURL?URLWithString:@"prefs:root=WIFI"];

28????if([[UIApplication?sharedApplication]?canOpenURL:url])?{

29????????[[UIApplication?sharedApplication]?openURL:url];

30????}

31}

跳轉(zhuǎn)目的地

iOS系統(tǒng)版本 <= iOS7 , 只能跳轉(zhuǎn)到 系統(tǒng)設(shè)置頁(yè)面

iOS系統(tǒng)版本 >= iOS8 肖油,支持跳轉(zhuǎn)到第三方應(yīng)用的設(shè)置界面中。使用prefs:root=bundleID ,bundleID是你第三方應(yīng)用工程的唯一ID

iOS系統(tǒng)版本 >= iOS10臂港,支持跳轉(zhuǎn)到自己應(yīng)用設(shè)置森枪,不支持跳轉(zhuǎn)到系統(tǒng)設(shè)置

3.5视搏、字體變化

蘋果的默認(rèn)字體會(huì)隨著iOS系統(tǒng)版本的不同而不同,iOS10中字體變大了疲恢。導(dǎo)致了原來(lái)的顯示有問(wèn)題凶朗,會(huì)造成...的出現(xiàn)。暫時(shí)沒有好的解決辦法显拳,需要自己在一個(gè)個(gè)適配一下棚愤!

3.6、UICollectionViewCell的的優(yōu)化

在iOS 10 之前,cell只能從重用隊(duì)列里面取出,再走一遍生命周期,并調(diào)用cellForItemAtIndexPath創(chuàng)建或者生成一個(gè)cell.

在iOS 10 中,系統(tǒng)會(huì)cell保存一段時(shí)間,也就是說(shuō)當(dāng)用戶把cell滑出屏幕以后,如果又滑動(dòng)回來(lái),cell不用再走一遍生命周期了,只需要調(diào)用willDisplayCell方法就可以重新出現(xiàn)在屏幕中了.

iOS 10 中,系統(tǒng)是一個(gè)一個(gè)加載cell的,二以前是一行一行加載的,這樣就可以提升很多性能;

iOS 10 新增加的Pre-Fetching預(yù)加載

3.7杂数、UIRefreshControl

在iOS 10 中, UIRefreshControl可以直接在UICollectionView和UITableView中使用,并且脫離了UITableViewController.現(xiàn)在RefreshControl是UIScrollView的一個(gè)屬性.

3.8宛畦、UserNotifications(用戶通知)

iOS 10所有相關(guān)通知被統(tǒng)一到了UserNotifications.framework框架中。增加了撤銷揍移、更新次和、中途還可以修改通知的內(nèi)容。通知不在是簡(jiǎn)單的文本了那伐,可以加入視頻踏施、圖片,自定義通知的展示等等罕邀。

iOS 10相對(duì)之前的通知來(lái)說(shuō)更加好用易于管理畅形,并且進(jìn)行了大規(guī)模優(yōu)化,對(duì)于開發(fā)者來(lái)說(shuō)是一件好事诉探。

iOS 10開始對(duì)于權(quán)限問(wèn)題進(jìn)行了優(yōu)化日熬,申請(qǐng)權(quán)限就比較簡(jiǎn)單了(本地與遠(yuǎn)程通知集成在一個(gè)方法中)。

四肾胯、iOS9(Xcode7)

4.1竖席、Bitcode

Xcode7 默認(rèn)啟用 Bitcode,但是如果我們用到的第三方庫(kù)編譯時(shí)還沒啟用 Bitcode敬肚,主工程就會(huì)編譯不過(guò)毕荐。Bitcode 是蘋果 App Thinning 的機(jī)制之一,可以減少安裝包的大小艳馒。App store 會(huì)將這個(gè) Bitcode 編譯為可執(zhí)行的64位或32位程序东跪。

解決辦法一:

最簡(jiǎn)單的解決辦法是先把 Bitcode 關(guān)掉:把 Build settings - Build Options - Enable Bitcode 改為 NO。

解決辦法二:

移除不支持BitCode的平臺(tái)SDK鹰溜,或者尋找支持BitCode的替代品虽填,或者聯(lián)系SDK方支持BitCode。

4.2曹动、HTTP 請(qǐng)求失敗

iOS9 默認(rèn)不支持 HTTP 請(qǐng)求斋日,需要改用更安全的 HTTPS(默認(rèn)用 TLS 1.2)。蘋果還提供了配置墓陈,使得所有安全性更低的網(wǎng)絡(luò)請(qǐng)求也能使用恶守,解決方案就是在 info.plist 里面增加以下配置:

1NSAppTransportSecurity????NSAllowsArbitraryLoads

如果復(fù)雜一些第献,還可以指定白名單域名,聲明所支持 TLS 的最低版本兔港。另外需要注意的是庸毫,即使寫了上述配置,在 HTTPS 頁(yè)面中衫樊,HTTP 的 javascript 或 css 不會(huì)被加載飒赃,因?yàn)樘O果認(rèn)為這降低了頁(yè)面的安全性。

4.3科侈、canOpenUrl 限制

canOpenUrl 可以用來(lái)判斷用戶是否安裝了某個(gè) APP载佳。也許是出于用戶隱私的考慮,iOS9 上對(duì) canOpenUrl 做了限制臀栈,最多只能對(duì) 50 個(gè) scheme 做判斷蔫慧。如果是用 Xcode7 編譯,需要在 plist 里面聲明這些 scheme权薯,沒有聲明的會(huì)直接返回 NO:

1LSApplicationQueriesSchemes????weixin????wechat

4.4姑躲、UIStatusBar的問(wèn)題

iOS9中廢棄的方法

1//?修改狀態(tài)欄的樣式為白色

2//?'setStatusBarStyle(_:animated:)'?was?deprecated?in?iOS?9.0:?Use?-[UIViewController?preferredStatusBarStyle]

3UIApplication.shared.setStatusBarStyle(.lightContent,?animated:?true)

4//?隱藏狀態(tài)欄

5//?'setStatusBarHidden(_:with:)'?was?deprecated?in?iOS?9.0:?Use?-[UIViewController?prefersStatusBarHidden]

6UIApplication.shared.setStatusBarHidden(true,?with:?.fade)

7復(fù)制代碼用下面兩個(gè)方法替換

8-[UIViewController?preferredStatusBarstyle]

9-[UIViewController?preferredStatusBarHidden]

參考資料:

iOS12適配

iOS12AdaptationTips

關(guān)于iPhone X 的適配

iOS11適配iPhoneX總結(jié)

iOS 10 適配知識(shí)點(diǎn)總結(jié)

聊聊iOS 10更新以后跳轉(zhuǎn)系統(tǒng)設(shè)置的幾種方式

iOS 10 調(diào)用系統(tǒng)"設(shè)置"里的功能(全)

iOS TouchID驗(yàn)證和Keychain結(jié)合使用

iOS10AdaptationTips

適配iOS9

微信 iOS 9 適配總結(jié)

iOS9AdaptationTips

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市盟蚣,隨后出現(xiàn)的幾起案子黍析,更是在濱河造成了極大的恐慌,老刑警劉巖刁俭,帶你破解...
    沈念sama閱讀 219,039評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異韧涨,居然都是意外死亡牍戚,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門虑粥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)如孝,“玉大人,你說(shuō)我怎么就攤上這事娩贷〉谖” “怎么了?”我有些...
    開封第一講書人閱讀 165,417評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵彬祖,是天一觀的道長(zhǎng)茁瘦。 經(jīng)常有香客問(wèn)我,道長(zhǎng)储笑,這世上最難降的妖魔是什么甜熔? 我笑而不...
    開封第一講書人閱讀 58,868評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮突倍,結(jié)果婚禮上腔稀,老公的妹妹穿的比我還像新娘盆昙。我一直安慰自己,他們只是感情好焊虏,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評(píng)論 6 392
  • 文/花漫 我一把揭開白布淡喜。 她就那樣靜靜地躺著,像睡著了一般诵闭。 火紅的嫁衣襯著肌膚如雪炼团。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,692評(píng)論 1 305
  • 那天涂圆,我揣著相機(jī)與錄音们镜,去河邊找鬼。 笑死润歉,一個(gè)胖子當(dāng)著我的面吹牛模狭,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播踩衩,決...
    沈念sama閱讀 40,416評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼嚼鹉,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了驱富?” 一聲冷哼從身側(cè)響起锚赤,我...
    開封第一講書人閱讀 39,326評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎褐鸥,沒想到半個(gè)月后线脚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,782評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡叫榕,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評(píng)論 3 337
  • 正文 我和宋清朗相戀三年浑侥,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片晰绎。...
    茶點(diǎn)故事閱讀 40,102評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡寓落,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出荞下,到底是詐尸還是另有隱情伶选,我是刑警寧澤,帶...
    沈念sama閱讀 35,790評(píng)論 5 346
  • 正文 年R本政府宣布尖昏,位于F島的核電站仰税,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏抽诉。R本人自食惡果不足惜肖卧,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望掸鹅。 院中可真熱鬧塞帐,春花似錦拦赠、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至榔幸,卻和暖如春允乐,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背削咆。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工牍疏, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人拨齐。 一個(gè)月前我還...
    沈念sama閱讀 48,332評(píng)論 3 373
  • 正文 我出身青樓鳞陨,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親瞻惋。 傳聞我的和親對(duì)象是個(gè)殘疾皇子厦滤,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評(píng)論 2 355

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