Mac應(yīng)用程序編程指南(一)

注:原文引用Mac開發(fā)官方文檔东亦,鑒于Mac開發(fā)文檔較少,本人主要做一下梳理频轿,同時(shí)記錄學(xué)習(xí)過程偷仿。


Mac應(yīng)用環(huán)境

(1)設(shè)計(jì)易于使用的環(huán)境

使用Cocoa為OS X編寫應(yīng)用程序。

*用戶不必手動(dòng)保存工作衣屏。Cocoa中的文檔模型提供了保存用戶基于文件的文檔而無需用戶交互的支持;請(qǐng)參閱文檔架構(gòu)免費(fèi)提供許多功能躏升。

*應(yīng)用程序應(yīng)在登錄時(shí)恢復(fù)用戶的工作環(huán)境。Cocoa提供對(duì)歸檔當(dāng)前狀態(tài)的應(yīng)用程序界面的支持(包括未保存文檔的狀態(tài))狼忱,并在啟動(dòng)時(shí)恢復(fù)該狀態(tài);請(qǐng)參閱用戶界面保存膨疏。

*應(yīng)用程序應(yīng)該支持自動(dòng)終止,以便用戶永遠(yuǎn)不必退出钻弄。自動(dòng)終止意味著當(dāng)用戶關(guān)閉應(yīng)用程序的窗口時(shí)佃却,應(yīng)用程序似乎退出,但實(shí)際上只是靜靜地移動(dòng)到背景上窘俺。優(yōu)點(diǎn)在于隨著應(yīng)用程序簡(jiǎn)單地回到前臺(tái)饲帅,隨后的啟動(dòng)幾乎是即時(shí)的。請(qǐng)參閱自動(dòng)和突然終止應(yīng)用程序改善用戶體驗(yàn)

*您應(yīng)該考慮通過實(shí)施用戶界面的全屏版本為用戶提供身臨其境的全屏體驗(yàn)。全屏體驗(yàn)消除了外界的分心灶泵,并允許用戶關(guān)注其內(nèi)容;請(qǐng)參閱實(shí)施全屏體驗(yàn)育八。

*支持觸控板手勢(shì),在您的應(yīng)用程序中進(jìn)行適當(dāng)?shù)牟僮魃饬凇J謩?shì)為常見任務(wù)提供簡(jiǎn)單的快捷方式髓棋,可用于補(bǔ)充現(xiàn)有的控件和菜單命令。OS X通過正常的事件處理機(jī)制提供對(duì)您的應(yīng)用程序報(bào)告手勢(shì)的自動(dòng)支持;參見可可事件處理指南惶洲。

*考慮最小化或消除用戶與原始文件系統(tǒng)的交互按声。通過打開和保存面板將整個(gè)文件系統(tǒng)公開給用戶,通過iPhoto和iTunes的方式湃鹊,一些應(yīng)用程序可以通過專門為應(yīng)用程序內(nèi)容設(shè)計(jì)的簡(jiǎn)化瀏覽器中呈現(xiàn)用戶內(nèi)容儒喊,從而提供更好的用戶體驗(yàn)。OS X使用一個(gè)定義明確的文件系統(tǒng)結(jié)構(gòu)币呵,可以輕松放置和查找文件,并包含許多訪問這些文件的技術(shù);請(qǐng)參閱文件系統(tǒng)侨颈。

*對(duì)于支持自定義文檔類型的應(yīng)用程序余赢,請(qǐng)?zhí)峁㏎uick Look插件,以便用戶可以從您的應(yīng)用程序外部查看文檔;請(qǐng)參閱快速編程指南哈垢。

*應(yīng)用程序應(yīng)該支持OS X用戶體驗(yàn)的基本功能妻柒,使應(yīng)用程序優(yōu)雅直觀,例如直接操作和拖放耘分。用戶應(yīng)該保持控制举塔,收到一致的反饋,并且能夠探索求泰,因?yàn)樵搼?yīng)用程序是寬容的動(dòng)作;請(qǐng)參閱macOS人機(jī)接口指南央渣。

所有上述功能都可以由Cocoa支持。


(2)運(yùn)行環(huán)境的低級(jí)細(xì)節(jié)

*并發(fā)和線程

每個(gè)進(jìn)程都以單個(gè)執(zhí)行線程開始渴频,并可根據(jù)需要?jiǎng)?chuàng)建更多的線程芽丹。雖然可以創(chuàng)建直接使用POSIX和其他更高級(jí)別的接口線程,最好是間接創(chuàng)建它們使用塊對(duì)象GCD操作對(duì)象卜朗,通過Cocoa并發(fā)技術(shù)NSOperation類拔第。

GCD和操作對(duì)象是簡(jiǎn)化或消除通常與線程編程相關(guān)的許多問題(如同步和鎖定)的原始線程的替代方法。具體來說场钉,它們定義了一個(gè)異步編程模型蚊俺,其中只指定要執(zhí)行的工作和要執(zhí)行的順序。系統(tǒng)然后處理在當(dāng)前硬件上盡可能有效地安排必要的線程和執(zhí)行任務(wù)所需的繁瑣工作逛万。不應(yīng)該使用GCD或操作進(jìn)行需要時(shí)間敏感數(shù)據(jù)處理(例如音頻或視頻播放)的工作泳猬,但您可以將其用于大多數(shù)其他類型的任務(wù)。

有關(guān)使用GCD和操作對(duì)象在應(yīng)用程序中實(shí)現(xiàn)并發(fā)性的更多信息,請(qǐng)參閱并發(fā)編程指南暂殖。

*文件系統(tǒng)

Finder不會(huì)將整個(gè)文件系統(tǒng)暴露給用戶价匠,而是隱藏普通用戶不需要使用的任何文件和目錄,例如低級(jí)UNIX目錄的內(nèi)容呛每。應(yīng)用程序仍然可以訪問他們具有有效權(quán)限的任何文件和目錄踩窖,無論它們是否被Finder隱藏。

創(chuàng)建應(yīng)用程序時(shí)晨横,您應(yīng)該了解并遵循與OS X文件系統(tǒng)關(guān)聯(lián)的約定洋腮。知道放置文件的位置以及如何從文件系統(tǒng)中獲取信息可確保更好的用戶體驗(yàn)。文件系統(tǒng)中的每個(gè)文件都有其位置手形,應(yīng)用程序需要知道將它們創(chuàng)建的文件放在哪里啥供。通過App Store分發(fā)應(yīng)用程序,這尤其重要库糠。

列出了應(yīng)用程序通常進(jìn)行交互的目錄伙狐。

Applications directory

應(yīng)用程序的安裝目錄。但是瞬欧,全局應(yīng)用程序目錄的路徑是/Applications每個(gè)用戶目錄可能包含一個(gè)包含用戶特定應(yīng)用程序的本地應(yīng)用程序目錄贷屎。不需要直接使用此路徑。要訪問應(yīng)用程序包中的資源艘虎,使用NSBundle對(duì)象唉侄。

Home directory

應(yīng)用程序的配置決定了應(yīng)用程序看到的主目錄的位置:對(duì)于在OS X v10.7及更高版本的沙箱中運(yùn)行的應(yīng)用程序,主目錄是應(yīng)用程序的容器目錄野建。有關(guān)容器目錄的更多信息属划,請(qǐng)參閱鑰匙串

對(duì)于在沙箱外運(yùn)行的應(yīng)用程序(包括在10.7之前運(yùn)行的OS X版本的應(yīng)用程序)候生,主目錄是/Users包含用戶文件的用戶特定子目錄同眯。要檢索到主目錄的路徑,請(qǐng)使用該NSHomeDirectory功能陶舞。

Library directory

Library目錄是用于存儲(chǔ)私人應(yīng)用程序相關(guān)數(shù)據(jù)和首選項(xiàng)的頂級(jí)目錄嗽测。有幾個(gè)Library目錄分散在整個(gè)系統(tǒng)中,但是您應(yīng)該始終使用位于當(dāng)前主目錄內(nèi)的Library目錄肿孵。

不要將文件直接存儲(chǔ)在Library目錄的頂層唠粥。相反,將它們存儲(chǔ)在此表中描述的特定子目錄之一中停做。

在OS X v10.7及更高版本中晤愧,F(xiàn)inder默認(rèn)隱藏用戶主文件夾中的Library目錄。因此蛉腌,不應(yīng)該將該文件存儲(chǔ)在您希望用戶訪問的目錄中官份。

要獲取此目錄的NSLibraryDirectory路徑只厘,請(qǐng)使用NSUserDomainMask域的搜索路徑密鑰。

Application Support directory

應(yīng)用程序支持目錄是您的應(yīng)用程序存儲(chǔ)支持應(yīng)用程序的任何類型的文件舅巷,但該應(yīng)用程序不需要運(yùn)行的文件羔味,例如文檔模板或配置文件。文件應(yīng)該是特定于應(yīng)用程序的钠右,但不應(yīng)該存儲(chǔ)用戶數(shù)據(jù)赋元。該目錄位于Library目錄下。

不要將文件存儲(chǔ)在此目錄的頂層:始終將它們放在為您的應(yīng)用程序或公司命名的子目錄中飒房。

如果資源適用于系統(tǒng)上的所有用戶搁凸,例如文檔模板,請(qǐng)將其放入/Library/Application Support狠毯。要獲取此目錄的NSApplicationSupportDirectory路徑护糖,請(qǐng)使用NSLocalDomainMask域的搜索路徑密鑰。如果資源是用戶特定的嚼松,例如工作區(qū)配置文件嫡良,請(qǐng)將它們放在當(dāng)前用戶的~/Library/Application Support目錄中。要獲取此目錄的NSApplicationSupportDirectory路徑献酗,請(qǐng)使用NSUserDomainMask域的搜索路徑密鑰皆刺。

Caches directory

緩存目錄是存儲(chǔ)緩存文件和其他臨時(shí)數(shù)據(jù)的位置,您的應(yīng)用程序可以根據(jù)需要重新創(chuàng)建凌摄。該目錄位于Library目錄下。

不要將文件存儲(chǔ)在此目錄的頂層:始終將它們放在為您的應(yīng)用程序或公司命名的子目錄中漓帅。您的應(yīng)用程序負(fù)責(zé)在不再需要時(shí)清除緩存數(shù)據(jù)文件锨亏。系統(tǒng)不會(huì)從此目錄中刪除文件。

要獲取此目錄的NSCachesDirectory路徑忙干,請(qǐng)使用NSUserDomainMask域的搜索路徑密鑰器予。

Movies directory

電影目錄包含用戶的視頻文件。要獲取此目錄的NSMoviesDirectory路徑捐迫,請(qǐng)使用NSUserDomainMask域的搜索路徑密鑰乾翔。

Music directory

音樂目錄包含用戶的音樂和音頻文件。要獲取此目錄的NSMusicDirectory路徑施戴,請(qǐng)使用NSUserDomainMask域的搜索路徑密鑰反浓。

Pictures directory

圖片目錄包含用戶的圖像和照片。要獲取此目錄的NSPicturesDirectory路徑赞哗,請(qǐng)使用NSUserDomainMask域的搜索路徑密鑰雷则。

Temporary directory

臨時(shí)目錄是您存儲(chǔ)不需要在應(yīng)用程序啟動(dòng)之間持續(xù)存儲(chǔ)的文件的位置。您通常將此目錄用于臨時(shí)文件或與應(yīng)用程序持久數(shù)據(jù)無關(guān)的其他類型的短命名數(shù)據(jù)文件肪笋。該目錄通常從用戶隱藏月劈。

您的應(yīng)用程序應(yīng)盡快從此目錄中刪除文件度迂。在系統(tǒng)啟動(dòng)時(shí),系統(tǒng)還可以從該目錄中清除滯留文件猜揪。

要獲取此目錄的路徑惭墓,請(qǐng)使用該NSTemporaryDirectory功能。

清單1-1顯示了如何檢索Application Support目錄的基本路徑而姐,然后向其附加一個(gè)自定義應(yīng)用程序目錄的示例腊凶。

清單1-1獲取Application Support目錄的路徑

NSFileManager * fileManager = [NSFileManager defaultManager];

NSURL * appSupportDir = nil;

NSArray * urls = [fileManager URLsForDirectory:NSApplicationSupportDirectory inDomains:NSUserDomainMask];

if([paths count]> 0){

appSupportDir = [[url objectAtIndex:0] URLByAppendingPathComponent:@“com.example.MyApp”];

}

有關(guān)如何訪問公知系統(tǒng)目錄中的文件的更多信息,請(qǐng)參閱“文件系統(tǒng)編程指南”毅人。

與文件系統(tǒng)交互

*區(qū)分大小寫

HFS +文件系統(tǒng)是不區(qū)分大小寫的吭狡,但也可以區(qū)分大小寫。因此丈莺,在代碼中指定文件名和目錄時(shí)划煮,最好假定區(qū)分大小寫。

*路徑建設(shè)

使用NSURLNSString類的方法構(gòu)造路徑缔俄。NSURL由于能夠指定本地文件系統(tǒng)中的路徑弛秋,而是指定網(wǎng)絡(luò)資源的路徑,因此該類優(yōu)先于路徑構(gòu)建俐载。

*文件屬性

可以使用類的getResourceValue:forKey:error:方法檢索許多與文件相關(guān)的屬性NSURL傍药。您還可以使用NSFileManager對(duì)象來檢索許多與文件相關(guān)的屬性。

*文件權(quán)限

使用訪問控制列表(ACL)和BSD權(quán)限管理文件權(quán)限莺褒。系統(tǒng)盡可能使用ACL來指定文件和目錄的精確權(quán)限讯壶,但是當(dāng)沒有指定ACL時(shí),它會(huì)回退到使用BSD權(quán)限状婶。

默認(rèn)情況下意敛,您的應(yīng)用程序創(chuàng)建的任何文件都由當(dāng)前用戶擁有并提供適當(dāng)?shù)臋?quán)限。因此膛虫,您的應(yīng)用程序應(yīng)始終能夠讀寫明確創(chuàng)建的文件草姻。此外,應(yīng)用程序的沙箱可能允許它在特定情況下訪問其他文件稍刀。有關(guān)沙箱的更多信息撩独,請(qǐng)參閱應(yīng)用程序沙箱和XPC

*跟蹤文件更改

無法使用文件協(xié)調(diào)界面的應(yīng)用程序(請(qǐng)參閱使用其他進(jìn)程協(xié)調(diào)文件訪問)跟蹤文件和目錄的更改可以改用FSEvents API账月。該API提供了一個(gè)用于跟蹤文件系統(tǒng)交互的下級(jí)界面综膀,并且在OS X v10.5及更高版本中可用。

有關(guān)如何使用FSEvents API的信息捶障,請(qǐng)參閱“文件系統(tǒng)事件編程指南”僧须。


安全

OS X中的安全技術(shù)可幫助您保護(hù)由應(yīng)用程序創(chuàng)建或管理的敏感數(shù)據(jù),并幫助最大限度地減少惡意代碼成功攻擊造成的損失项炼。這些技術(shù)會(huì)影響您的應(yīng)用程序與系統(tǒng)資源和文件系統(tǒng)的交互担平。

應(yīng)用程序沙箱XPC

您可以按照安全編碼指南中推薦的做法來保護(hù)您的應(yīng)用免受惡意軟件的攻擊示绊。但攻擊者只需要在您的防御中找到一個(gè)洞,或者與您鏈接的任何框架和庫中找到一個(gè)孔暂论,以獲得對(duì)應(yīng)用程序的所有權(quán)限的控制面褐。

如果惡意代碼利用您的應(yīng)用程式,App Sandbox可以防止被盜取胎,損壞或已刪除的用戶數(shù)據(jù)的最后一道防線展哭。App Sandbox還可以最大限度地減少編碼錯(cuò)誤造成的損害。其戰(zhàn)略有兩個(gè)方面:

應(yīng)用程序沙箱可讓您描述應(yīng)用程序如何與系統(tǒng)進(jìn)行交互闻蛀。系統(tǒng)然后授予您的應(yīng)用程序所需的訪問權(quán)限匪傍,以完成其工作,而不再需要觉痛。為了讓您的應(yīng)用程序提供最高級(jí)別的損壞遏制役衡,最佳做法是盡可能采用最嚴(yán)格的沙箱。

應(yīng)用程序沙箱允許用戶通過打開和保存對(duì)話框薪棒,拖放和其他熟悉的用戶交互方式透明地授予您的應(yīng)用程序附加訪問權(quán)限手蝎。

您可以通過在Xcode中設(shè)置權(quán)限來描述您的應(yīng)用程序與系統(tǒng)的交互。的權(quán)利是一個(gè)鍵值對(duì)俐芯,在定義屬性列表文件棵介,賦予特定的功能或安全許可的目標(biāo)。例如吧史,有權(quán)利密鑰表示您的應(yīng)用程序需要訪問攝像機(jī)邮辽,網(wǎng)絡(luò)和用戶數(shù)據(jù),如地址簿贸营。有關(guān)OS X中可用的所有權(quán)利的詳細(xì)信息逆巍,請(qǐng)參閱授權(quán)密鑰參考

當(dāng)您采用App Sandbox時(shí)莽使,該系統(tǒng)提供了一個(gè)特殊的目錄供您的應(yīng)用程序使用,并且只能由您的應(yīng)用程序稱為容器笙僚。您的應(yīng)用程序?qū)θ萜鬟M(jìn)行了無限制的讀/寫訪問芳肌。POSIX層上方的所有OS X路徑查找API都相對(duì)于容器而不是用戶的主目錄。其他沙盒應(yīng)用程序無法訪問您的應(yīng)用程序的容器肋层,如代碼簽名中進(jìn)一步描述亿笤。

iOS注意:由于不是用戶文檔,OS X容器與iOS容器不同栋猖,iOS容器在用戶文檔中是唯一的位置净薛。作為用戶文檔的唯一本地位置,iOS容器通常被稱為應(yīng)用程序的Documents目錄蒲拉。

此外肃拜,iOS容器還包含該應(yīng)用程序本身痴腌。這在OS X中不是這樣。

iCloud注意:如iCloud Storage所述燃领,Apple的iCloud技術(shù)也使用名稱“container”士聪。iCloud容器和App Sandbox容器之間沒有功能連接。

您的沙盒應(yīng)用程序可以通過以下三種方式訪問??其容器外的路徑:

在用戶的特定方向

您可以使用特定文件系統(tǒng)位置的權(quán)限(如Movies文件夾)配置應(yīng)用程序

當(dāng)路徑在某些目錄中是世界可讀的時(shí)

與用戶進(jìn)行交互以擴(kuò)展沙箱的OS X安全技術(shù)稱為Powerbox猛蔽。Powerbox沒有API剥悟。例如,當(dāng)您使用NSOpenPanelNSSavePanel類時(shí)曼库,或用戶在應(yīng)用程序中拖放時(shí)区岗,您的應(yīng)用程序會(huì)透明地使用Powerbox。

一些應(yīng)用程序操作更有可能成為惡意利用的目標(biāo)毁枯。示例是對(duì)通過網(wǎng)絡(luò)接收的數(shù)據(jù)的解析以及視頻幀的解碼慈缔。通過使用XPC,您可以通過將這些潛在危險(xiǎn)的活動(dòng)分成自己的地址空間來提高App Sandbox提供的損害容限的有效性后众。

XPC是通過啟用特權(quán)分離來補(bǔ)充App Sandbox的OS X進(jìn)程間通信技術(shù)胀糜。特權(quán)分隔反過來是一種開發(fā)策略,您可以根據(jù)每個(gè)部分需要的系統(tǒng)資源訪問將應(yīng)用程序分割成多個(gè)蒂誉。您創(chuàng)建的組件被稱為XPC服務(wù)教藻。有關(guān)采用XPC的詳細(xì)信息,請(qǐng)參閱“守護(hù)進(jìn)程和服務(wù)編程指南”右锨。

有關(guān)App Sandbox及其使用方法的完整說明括堤,請(qǐng)參閱“應(yīng)用程序沙箱設(shè)計(jì)指南”

代碼簽名

OS X采用稱為代碼簽名的安全技術(shù)绍移,允許您證明您的應(yīng)用程序確實(shí)由您創(chuàng)建悄窃。應(yīng)用程式代碼簽署后,系統(tǒng)可以偵測(cè)到應(yīng)用程式的任何變更 - 無論是意外引起變更蹂窖,還是惡意代碼轧抗。各種安全技術(shù),包括App Sandbox和家長(zhǎng)控制瞬测,都取決于代碼簽名横媚。

在大多數(shù)情況下,您可以依賴Xcode的自動(dòng)代碼簽名月趟,這只需要在項(xiàng)目的構(gòu)建設(shè)置中指定代碼簽名身份灯蝴。在Mac的“工具流程指南”中的代碼簽名應(yīng)用程序中描述了采取的步驟。如果您需要將代碼簽名合并到自動(dòng)構(gòu)建系統(tǒng)中孝宗,或者將應(yīng)用程序與第三方框架相鏈接穷躁,請(qǐng)參閱代碼簽名指南中所述的步驟。

當(dāng)您采用App Sandbox時(shí)因妇,您必須對(duì)您的應(yīng)用程序進(jìn)行編碼问潭。這是因?yàn)槭跈?quán)(包括啟用App Sandbox的特權(quán))內(nèi)置于應(yīng)用程式的代碼簽名中猿诸。

OS X強(qiáng)制應(yīng)用程序的容器和應(yīng)用程序的代碼簽名之間的關(guān)系。這個(gè)重要的安全功能確保沒有其他沙盒應(yīng)用可以訪問您的容器睦授。該機(jī)制的工作原理如下:系統(tǒng)創(chuàng)建一個(gè)應(yīng)用程序的容器后两芳,每次啟動(dòng)具有相同軟件包ID的應(yīng)用程序時(shí),系統(tǒng)會(huì)檢查應(yīng)用程序的代碼簽名是否與容器預(yù)期的代碼簽名相匹配去枷。如果系統(tǒng)檢測(cè)到不匹配怖辆,則會(huì)阻止該應(yīng)用啟動(dòng)。

代碼簽名的應(yīng)用程序中沙箱的情況下一個(gè)完整的解釋删顶,閱讀的深度應(yīng)用程序沙箱中的應(yīng)用沙盒設(shè)計(jì)指南竖螃。

鑰匙扣

鑰匙串是用于存儲(chǔ)用戶密碼和其他秘密的安全加密容器。它旨在幫助用戶管理他們的多個(gè)登錄逗余,每個(gè)登錄具有自己的ID和密碼特咆。您應(yīng)該始終使用鑰匙串來存儲(chǔ)應(yīng)用程序的敏感憑據(jù)。

有關(guān)鑰匙串的更多信息录粱,請(qǐng)參閱鑰匙串服務(wù)編程指南中的鑰匙串服務(wù)概念腻格。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市啥繁,隨后出現(xiàn)的幾起案子菜职,更是在濱河造成了極大的恐慌,老刑警劉巖旗闽,帶你破解...
    沈念sama閱讀 211,348評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件酬核,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡适室,警方通過查閱死者的電腦和手機(jī)嫡意,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來捣辆,“玉大人蔬螟,你說我怎么就攤上這事∑耄” “怎么了促煮?”我有些...
    開封第一講書人閱讀 156,936評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)整袁。 經(jīng)常有香客問我,道長(zhǎng)佑吝,這世上最難降的妖魔是什么坐昙? 我笑而不...
    開封第一講書人閱讀 56,427評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮芋忿,結(jié)果婚禮上炸客,老公的妹妹穿的比我還像新娘疾棵。我一直安慰自己,他們只是感情好痹仙,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,467評(píng)論 6 385
  • 文/花漫 我一把揭開白布是尔。 她就那樣靜靜地躺著,像睡著了一般开仰。 火紅的嫁衣襯著肌膚如雪拟枚。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,785評(píng)論 1 290
  • 那天众弓,我揣著相機(jī)與錄音恩溅,去河邊找鬼。 笑死谓娃,一個(gè)胖子當(dāng)著我的面吹牛脚乡,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播滨达,決...
    沈念sama閱讀 38,931評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼奶稠,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了捡遍?” 一聲冷哼從身側(cè)響起锌订,我...
    開封第一講書人閱讀 37,696評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎稽莉,沒想到半個(gè)月后瀑志,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,141評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡污秆,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,483評(píng)論 2 327
  • 正文 我和宋清朗相戀三年劈猪,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片良拼。...
    茶點(diǎn)故事閱讀 38,625評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡战得,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出庸推,到底是詐尸還是另有隱情常侦,我是刑警寧澤,帶...
    沈念sama閱讀 34,291評(píng)論 4 329
  • 正文 年R本政府宣布贬媒,位于F島的核電站聋亡,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏际乘。R本人自食惡果不足惜坡倔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,892評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧罪塔,春花似錦投蝉、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至佃蚜,卻和暖如春庸娱,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背爽锥。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來泰國打工涌韩, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人氯夷。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓臣樱,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親腮考。 傳聞我的和親對(duì)象是個(gè)殘疾皇子雇毫,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,492評(píng)論 2 348

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