IOS編程知識(shí)點(diǎn)記錄

這篇只是用于記憶知識(shí)點(diǎn)

interface 接口

編程

基礎(chǔ)知識(shí)類

在編程語(yǔ)言中,靈活與安全的問(wèn)題總是沖突.過(guò)度的靈活會(huì)導(dǎo)致使用者經(jīng)常使用到一些十分關(guān)鍵的位置,這使得它是開(kāi)放的,易于修改的,同時(shí)這些關(guān)鍵,重要的的區(qū)域會(huì)處于危險(xiǎn)的位置.

安全性的編程語(yǔ)言他們會(huì)制定許多協(xié)議,規(guī)范,告訴一些程序需要通過(guò)規(guī)范編寫(xiě),這讓程序犯錯(cuò)的幾率變小,同時(shí)也讓語(yǔ)言的靈活性大大降低.

.h 文件寫(xiě)方法的聲明. 可以被子類調(diào)用(可以在對(duì)象范圍之外調(diào)用) .m 文件 寫(xiě)方法的實(shí)現(xiàn). 聲明寫(xiě)在.m文件里,不可以在子類中調(diào)用.(不可以在對(duì)象范圍之外調(diào)用)

.h 文件中的聲明和屬性可以被調(diào)用,可以被其他人看見(jiàn),聲明的實(shí)現(xiàn)寫(xiě)在.m 文件中
.m 文件實(shí)現(xiàn).h文件的聲明方法,.m文件也有聲明,但是不可以被外部調(diào)用,只能在.m文件中作為全局變量使用. .m文件只有開(kāi)發(fā)者可以看見(jiàn),這里有封裝的思想.
interface就是一個(gè)接口,在.h .m文件中,用于寫(xiě)聲明
@implementation :實(shí)現(xiàn)

實(shí)例化:就是將一個(gè)抽象的類提供一個(gè)具體的例子.相當(dāng)于屬性賦值(不是初始化,初始化是init) [百科]在面向?qū)ο蟮木幊讨校ǔ0延妙悇?chuàng)建對(duì)象的過(guò)程稱為實(shí)例化 線性表是最基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu).除了開(kāi)節(jié)點(diǎn),其他是線性排序.(基礎(chǔ)單元:節(jié)點(diǎn))

迭代器模式:順序訪問(wèn)聚合對(duì)象(數(shù)據(jù),字典,集合等); (無(wú)用)

Masonry : 目前最流行的autolayout第三方框架.

由于OC是基于C語(yǔ)言編寫(xiě)的,所以需要遵循C的一些特性

C語(yǔ)言 1.函數(shù)的聲明: 在C語(yǔ)言中,函數(shù)的定義是有規(guī)范的:默認(rèn)情況下,只有后面定義的函數(shù)才可以調(diào)用才可以調(diào)用前面定義的函數(shù).
2.如果想把函數(shù)的定義寫(xiě)在main函數(shù)后面,而且main函數(shù)能正常調(diào)用這些函數(shù),那么就必須在main函數(shù)前面聲明.
3.函數(shù)的聲明格式:你在main函數(shù)前面聲明過(guò)一個(gè)函數(shù),mian函數(shù)就知道這個(gè)函數(shù)的存在.而且只要知道函數(shù)名,函數(shù)的返回值.函數(shù)接受多少個(gè)參數(shù),就能調(diào)用這個(gè)函數(shù),因此,聲明函數(shù)的時(shí)候可以省略參數(shù)的名稱. 寫(xiě)函數(shù)聲明不寫(xiě)函數(shù)定義 也會(huì)報(bào)錯(cuò).(鏈接錯(cuò)誤)

因此我認(rèn)為OC是這樣的
OC語(yǔ)言 1.方法的聲明,OC中,方法的定義是有規(guī)范的,只有加載到viewdidload中方法才會(huì)調(diào)用.(在A文件中我們需要引入B頭文件)
2.如果我們要調(diào)用B文件的方法,屬性,協(xié)議(B頭文件中有的),就必須先告訴編譯器,這個(gè)方法是存在的.
3.我們需要在前面先初始化B,然后才能調(diào)用它.(強(qiáng)行湊3個(gè))
語(yǔ)法糖 : 也稱為糖衣語(yǔ)法,是指計(jì)算機(jī)語(yǔ)言中與另一套語(yǔ)言法等效開(kāi)發(fā)者用起來(lái)卻更為方便的語(yǔ)法.語(yǔ)法糖令程序更為易讀,減少代碼出錯(cuò)幾率.

例子:

 NSString *str = [animations objectAtIndex:1];
 NSString *str = animations[1];

 NSArray *XX = [NSArray arrayWithObjects:@"aa",@"bb",@"cc",nil];
 NSArray *XX = @[@"aa",@"bb",@"cc"];

 NSString *xx = [NSString stringWithString:@"xxx"];  //不可用
 NSSting  *xx = @"xxx";

當(dāng)然簡(jiǎn)潔的方法需要建立在已經(jīng)理解原意的基礎(chǔ)上,否則會(huì)導(dǎo)致語(yǔ)法混亂,兩種一樣的語(yǔ)法沖突.             ------編寫(xiě)高質(zhì)量IOS與OSX代碼的52個(gè)高效方法.  (現(xiàn)在蘋(píng)果系統(tǒng)叫Mac OS了)


便利構(gòu)造器是一種快速創(chuàng)建對(duì)象的方式.它本質(zhì)上是把初始化方法做了一次封裝,方便外界使用,在init的時(shí)候同時(shí)給屬性變量賦值的類方法. 
類方法不能訪問(wèn)成員變量,但是可以通過(guò)對(duì)象方法調(diào)用.
http://blog.sina.com.cn/s/blog_877e9c3c0101gpnz.html
http://www.reibang.com/p/215f7ad7b74c

工廠模式 http://my.oschina.net/leejan97/blog/311843
書(shū)寫(xiě)規(guī)范類

每個(gè)OC對(duì)象實(shí)例都是指向某塊內(nèi)存數(shù)據(jù)的指針.所以在聲明變量時(shí),類型后面加"*",而常量就不需要.

有狀態(tài)的控件可以用set方法設(shè)置 = 需要你創(chuàng)建的對(duì)象與系統(tǒng)對(duì)象對(duì)應(yīng).這樣才能顯示.

cmd + shift + B 查看內(nèi)存有無(wú)泄漏

interface :接口
引入一個(gè)文件調(diào)用 需要重定義;

數(shù)組是一塊連續(xù)的存儲(chǔ)空間(通過(guò)輸出%p 來(lái)觀察內(nèi)存地址)

數(shù)組不可以進(jìn)行整體賦值.

數(shù)組作為函數(shù)參數(shù)傳遞是地址傳遞會(huì)自動(dòng)轉(zhuǎn)換為指針類型,基本數(shù)據(jù)類型是值傳遞.

結(jié)構(gòu)體: 是對(duì)數(shù)據(jù)的封裝

函數(shù) : 對(duì)功能的封裝
封裝的好處:

     提高代碼的可讀性
     提高數(shù)據(jù)的易用性
     提高代碼的可維護(hù)性

for循環(huán)中 三個(gè)參數(shù)使用分號(hào);是因?yàn)樗鼈兪侨齻€(gè)不同類型的參數(shù)

類和類的實(shí)例(對(duì)象)沒(méi)有任何本質(zhì)上的區(qū)別.任何類的定義都是對(duì)象.任何對(duì)象都是isa指針.

isa:是一個(gè)Class類型的指針.每個(gè)實(shí)例對(duì)象都有個(gè)isa的指針,而Class里也有isa的指針,指向meteClass(元類).

set:

  1. 作用:提供一個(gè)方法給外界設(shè)置成員變量值,可以在方法里面對(duì)參數(shù)進(jìn)行相應(yīng)過(guò)濾.
    2.set方法后面跟上成員變量的名稱,成員變量的首字母大寫(xiě).
    3.必須需要接受一個(gè)參數(shù),而且參數(shù)類型根成員變量類型一致
    4形參的名稱不能跟成員變量名一樣.
    5.返回void
    get:
1.作用:返回對(duì)象內(nèi)部的成員變量
2.肯定有返回值     
3.方法名與成員變量名一樣.
4.不需要接受任何參數(shù)

我們?cè)谧远x協(xié)議時(shí),由于是寫(xiě)在聲明的上面,所以要添加一個(gè)類.不然Xcode找不到相關(guān)的類. .h文件同時(shí)又叫接口文件.

CocoaPods是開(kāi)發(fā)OSX和IOS應(yīng)用程序的一個(gè)第三方庫(kù)的依賴管理工具.

字典轉(zhuǎn)模型(runtime) 消息轉(zhuǎn)發(fā)(多代理),
KVO 實(shí)現(xiàn),方法交換
KVC:Key Value Coding :給模型屬性賦值

KVO:Key Value ObsevRing :監(jiān)聽(tīng)模型屬性值的改變

觀察者模式: 當(dāng)一個(gè)物體發(fā)生變化時(shí),會(huì)通知所有觀察這個(gè)物體的觀察者讓其做出反應(yīng)芙委。實(shí)現(xiàn)起來(lái)無(wú)非就是把所有觀察者的對(duì)象給這個(gè)物體炫惩,當(dāng)這個(gè)物體的發(fā)生改變焊刹,就會(huì)調(diào)用遍歷所有觀察者的對(duì)象調(diào)用觀察者的方法從而達(dá)到通知觀察者的目的构资。
http://lastdays.cn/2016/02/22/base1/

//快速迭代 disatch_apply(線程名.count,queue,^size_t index){

}

http://weibo.com/bestswifter?is_hot=1#_loginLayer_1465972733804

解析: 將文件從你當(dāng)前格式轉(zhuǎn)為你需要的格式.

json本質(zhì)是一個(gè)特殊格式的字符串.(不是NSString) jsonObejectWithData

Instancetype

       - instancetype 在類型表示上,跟id一樣,可以表示任何對(duì)象類型
       - instancetype 只能用在返回值類型上,不能像id一樣用來(lái)參數(shù)類型上.
       - instancetype比id多一個(gè)好處,編譯器會(huì)自動(dòng)檢測(cè)對(duì)象的類型.

GCD

進(jìn)程:系統(tǒng)正在運(yùn)行的一個(gè)程序
線程:程序運(yùn)行開(kāi)啟的任務(wù) (線程中任務(wù)執(zhí)行是串行的,所以開(kāi)多個(gè)線程)

每個(gè)程序都有一個(gè)主線程.稱為"主線程"或"UI線程"

主線程主要作用:

顯示/刷新Ui界面

處理UI時(shí)間
主線程關(guān)乎用戶體驗(yàn),選擇主線程需要注意.(統(tǒng)籌思想)

多線程:多個(gè)線程

原理:CPU通過(guò)極快的切換來(lái)處理多個(gè)線程,達(dá)到偽多線程.
多個(gè)線程會(huì)降低程序的線程,CPU資源有限.
技術(shù)方案:GCD,NSThread.NSOperation,pthread (使用頻率由高到低) //1創(chuàng)建線程后自動(dòng)啟動(dòng)線程 //2隱式創(chuàng)建并啟動(dòng)線程

NSThread *thread = [[NSThread alloc]initWithTarget:self selector:@selector(run:) object:nil];
[NSThread detachNewThreadSelector:@selector(run) toTarget:self withObject:nil];

  //睡眠狀態(tài) 
  [NSThread sleepForTimeInterval:3];
   //選擇具體休眠時(shí)間

NSThread sleepUntilDate:[NSDate dateWithTimeIntervalSinceNow:2];
//直接退出線程
[NSThread exit]
GCD 有倆個(gè)核心概念:

 任務(wù) : 執(zhí)行什么操作
 隊(duì)列: 用來(lái)存放任務(wù)(以及何時(shí)執(zhí)行,執(zhí)行次數(shù))

GCD執(zhí)行操作常用函數(shù)
//異步操作
dispatch_async(<#dispatch_queue_t queue#>, <#^(void)block#>)
//同步操作(只能在當(dāng)前線程做); dispatch_sync(<#dispatch_queue_t queue#>, <#^(void)block#>)

同步(sync):只在當(dāng)前線程中執(zhí)行任務(wù),不具備開(kāi)啟新線程的功能,串行執(zhí)行任務(wù)
異步(async):可以在新的線程中執(zhí)行任務(wù),具備開(kāi)啟新線程的功能,并發(fā)執(zhí)行任務(wù)
并發(fā):多個(gè)任務(wù)同時(shí)進(jìn)行.(異步線程用) 解鎖多線程
串行:多個(gè)任務(wù)順序執(zhí)行;
//創(chuàng)建一個(gè)并發(fā)隊(duì)列 //參數(shù)1:創(chuàng)建隊(duì)列的名字 //參數(shù)2:執(zhí)行同步還是異步操作

異步并發(fā)隊(duì)列
//獲取全局的并發(fā)隊(duì)列
dispatch_queue_t queue = dispatch_queue_create("com.babb.queue", DISPATCH_QUEUE_CONCURRENT);
dispatch_async(<#dispatch_queue_t queue#>, <#^(void)block#>)
//或者這樣獲取全局的并發(fā)隊(duì)列
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0);

DISPATCH_QUEUE_CONCURRENT:并發(fā)隊(duì)列
DISPATCH_QUEUE_SERIAL:串行隊(duì)列
GCD默認(rèn)已經(jīng)提供了全局的并發(fā)隊(duì)列,給整個(gè)工程使用,可以無(wú)需創(chuàng)建,直接調(diào)用. 使用 dispatch_get_global_queue(<#long identifier#>, <#unsigned long flags#>) 函數(shù)獲得全局的并發(fā)隊(duì)列.

同步函數(shù) + 并發(fā)隊(duì)列 = 不會(huì)開(kāi)多個(gè)線程
異步串行
dispatch_queue_t queue = dispatch_queue_creat("com.xx.queue",DISPATCH_QUEUE_SERIAL); //將任務(wù)加入隊(duì)列 dispatch_async(queue,^{ NSLog(@"寫(xiě)入任務(wù)"); });

//使用sync函數(shù)往當(dāng)前串行隊(duì)列添加任務(wù),會(huì)卡住隊(duì)列

獲取主線程
dispatch_queue_t queue = dispatch_get_main_queue();

dispatch_async(queue^ { NSLog("放入主線程中不管是同步異步都是不開(kāi)新線程的"); }); //同步函數(shù)放入主隊(duì)列會(huì)導(dǎo)致邏輯沖突,發(fā)生錯(cuò)誤.

dispatch_asnc(dispatch_get_global_queue(DISPATCH_QUEUE_DEFAULT,0),^{ NSLog(@"寫(xiě)其他任務(wù)"); //回到主線程 dispatch_async(dispatch_get_main_queue(),^{ self.XX.YY = YY;

});

});

//延遲執(zhí)行隊(duì)列

//方法一

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue(),^{ NSLog(@"------"); });

//方法二

[NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(run) userInfo:nil repeats:NO];

//單次執(zhí)行 通常用于單例 static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ NSLog(@"----"); });

多線程的常見(jiàn)問(wèn)題 資源共享,

多個(gè)線程共同訪問(wèn)同一個(gè)資源,造成資源搶奪.需要加互斥鎖. @synchronized (self) { } 主線程精髓,將耗時(shí)操作留給子線程,UI界面留給主線程 子線程加載完程序,回到主線程加載數(shù)據(jù).
[self.image performSelectorOnMainThread:@selector(touchesForView:) withObject:_imageView waitUntilDone:YES];

[self.imageView performSelector:@selector(setImage:) onThread:[NSThread mainThread] withObject:_imageView waitUntilDone:NO];

單例

//單例 單例必須加static 固定屬性; 它是類方法 .

單例模式:說(shuō)白了就是一個(gè)類不通過(guò)alloc方式創(chuàng)建對(duì)象遮糖,而是用一個(gè)靜態(tài)方法返回這個(gè)類的對(duì)象冕广。系統(tǒng)只需要擁有一個(gè)的全局對(duì)象,這樣有利于我們協(xié)調(diào)系統(tǒng)整體的行為盈滴,比如想獲得[UIApplication sharedApplication];任何地方調(diào)用都可以得到 UIApplication的對(duì)象涯肩,這個(gè)對(duì)象是全局唯一的。

寫(xiě)音頻類軟件時(shí)我們需要?jiǎng)?chuàng)建一個(gè)字典巢钓。用來(lái)保存當(dāng)前存在的下載病苗。使單例持有它,從而不會(huì)被銷毀

緩存與下載的區(qū)別

  • 緩存是當(dāng)前程序內(nèi)容保存,退出程序后釋放.
  • 下載是將文件保存本地,退出后仍然存在.
    邊下邊播,給一個(gè)錯(cuò)誤的網(wǎng)址,讓程序走一個(gè)協(xié)議,這個(gè)協(xié)議可以請(qǐng)求你要下載的資源,實(shí)現(xiàn)邊下邊播的功能.

代理和通知的區(qū)別
代理:1個(gè)對(duì)象只能告訴另一個(gè)對(duì)象發(fā)生的事情
通知:一個(gè)對(duì)象可以告訴N個(gè)對(duì)象發(fā)生的事情.

//在Foundation框架中,使用NSJSIONSerialization對(duì)象來(lái)對(duì)data對(duì)象進(jìn)行解析

//NSDictionary *dataDic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];

//根據(jù)接口中的數(shù)據(jù)類型,將數(shù)據(jù)解析成OC中的數(shù)組對(duì)象或字典對(duì)象,如果接口最外層是字典就用字典接受,最外層是數(shù)組就用數(shù)組接受.

PHP

域名 . ip .公共部分 127.0.0.1
返回值參考
code msg 描述 1 成功 接口訪問(wèn)成功 2 失敗 用戶名錯(cuò)誤 3 失敗 密碼錯(cuò)誤

1.登錄 拼接 /login.php? //參數(shù) 參數(shù)名 描述 是否為必填 userName 用戶名 是 passWord 密碼 是 參考鏈接: 127.0.0.1/login.php?userName=張三&passWord123456

返回值 { "code": 1, "msg": "成功", "result": { "userName": "abcdde", "age": 12, "phone": "110" } } -->

http及AFNetworking

http是客戶端與服務(wù)器端通信的一套超文本協(xié)議,制定了標(biāo)準(zhǔn),規(guī)范

URL決定和誰(shuí)通信

URL的結(jié)構(gòu) https://(通信協(xié)議) www.baidu.com(hostname 主機(jī)名稱)/baidu?wd=%E6%85%95%E8%AF%BE%E7%BD%91&tn= (/absolute-path路徑[接口名稱])monline_dg&ie=utf-8(?query查詢條件[接口字段])

www.cocoachina.com/industry/20131106/7304.htmlgdsg

常用方法 標(biāo)準(zhǔn)用法

  • GET : 從服務(wù)器獲取一段內(nèi)容,通常不包含請(qǐng)求體
  • POST : 使用客戶端提供的數(shù)據(jù)更新實(shí)體
    不常用方法

HEAD :獲取響應(yīng)的元數(shù)據(jù)而無(wú)需檢索響應(yīng)的全部?jī)?nèi)容 PUI :使用客戶端提供的數(shù)據(jù)添加實(shí)體 DELETE : 使用客戶端提供的請(qǐng)求體來(lái)刪除實(shí)體

NSURL 表示客戶端訪問(wèn)哪臺(tái)服務(wù)器端的指定資源 (粗淺的講就是網(wǎng)址啦)

NSURLRequest :標(biāo)識(shí)客戶端發(fā)起的網(wǎng)絡(luò)請(qǐng)求內(nèi)容

NSURLConnection : 表示客戶端與服務(wù)器端建立的網(wǎng)絡(luò)連接接

NSURLResponse : 服務(wù)端給予客戶端的請(qǐng)求結(jié)果.

//表示訪問(wèn)的服務(wù)器
NSURL *url = [NSURL URLWithString:@"http://www.imooc.com/"];
//表示客戶端發(fā)起的網(wǎng)絡(luò)請(qǐng)求的請(qǐng)求內(nèi)容
NSURLRequest *request = [NSURLRequest requestWithURL:url];
// NSURLConnection 此方法已經(jīng)被NSURLSession代替了
NSURLConnection *connecction = [[NSURLConnection alloc]initWithRequest:request delegate:self];
//啟動(dòng)網(wǎng)絡(luò)請(qǐng)求
[connecction start];
https://pic2.zhimg.com/3c73e679994145c986d2d935c691521d_b.jpg

數(shù)據(jù)相關(guān)

IOS的數(shù)據(jù)存儲(chǔ) http://www.reibang.com/p/0cbc364d2ebc

架構(gòu)

MVC : mode view controller

數(shù)據(jù)Model: 負(fù)責(zé)封裝數(shù)據(jù)症汹、存儲(chǔ)和處理數(shù)據(jù)運(yùn)算等工作
視圖View: 負(fù)責(zé)數(shù)據(jù)展示硫朦、監(jiān)聽(tīng)用戶觸摸等工作
控制器Controller: 負(fù)責(zé)業(yè)務(wù)邏輯、事件響應(yīng)背镇、數(shù)據(jù)加工等工作
mode類還持有倆個(gè)對(duì)象 item:是實(shí)際存儲(chǔ)數(shù)據(jù)的對(duì)象,和view中的屬性對(duì)應(yīng) Cache(緩存) MVVM
http://my.oschina.net/Jacedy/blog/603573

IOS真機(jī)測(cè)試

一:點(diǎn)擊系統(tǒng)軟件"鑰匙串??",在菜單欄選擇鑰匙串訪問(wèn)--->證書(shū)助理--->從證書(shū)頒發(fā)機(jī)構(gòu)請(qǐng)求機(jī)構(gòu)請(qǐng)求證書(shū)--->跳出的窗口填寫(xiě)(隨便談) 請(qǐng)求是那里尋存儲(chǔ)到磁盤(pán)(省事)-->繼續(xù) -->跳出的窗口文件最好放在桌面---------文件.

二:百度 Apple Developer (不是Apple)-->在菜單欄右邊的Account登錄開(kāi)發(fā)者賬號(hào)(普通蘋(píng)果賬號(hào)是無(wú)法申請(qǐng)證書(shū)的)-->左邊菜單欄Certificates,IDs&Profiles--左邊出現(xiàn)一側(cè)菜單欄-->Certificates-->Development-->點(diǎn)擊右側(cè)+號(hào)添加 ??搜索已添加證書(shū) --> 按需選擇IOS APP Development(測(cè)試證書(shū))APPle push Notification serviceSSL (測(cè)試推送證書(shū)) -->APP Store and HOC 發(fā)布證書(shū) APPlePushNotificationservice SSL (發(fā)布推送的證書(shū)) --> 點(diǎn)擊下方的Worldwide DeveloperRelations Certificate Authorty (下載文件) ---> 點(diǎn)擊Continue按鈕 -->進(jìn)入的頁(yè)面需要選擇文件->

三:找到剛剛下載好的文件雙擊打開(kāi) -->進(jìn)入鑰匙串頁(yè)面-->點(diǎn)擊鑰匙串訪問(wèn)->證書(shū)助理->從證書(shū)機(jī)構(gòu)請(qǐng)求證書(shū)->填寫(xiě)郵箱->存儲(chǔ)到磁盤(pán)->繼續(xù)->桌面-存儲(chǔ)-完成->回到瀏覽器頁(yè)面-->導(dǎo)入剛剛的文件-->continue-->點(diǎn)擊download按鈕下載->Done

四:打開(kāi)Xcode,cod + 逗號(hào) ,左邊點(diǎn)擊加號(hào)按鈕 填寫(xiě).

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末咬展,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子瞒斩,更是在濱河造成了極大的恐慌破婆,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,252評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件胸囱,死亡現(xiàn)場(chǎng)離奇詭異祷舀,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門蔑鹦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)夺克,“玉大人箕宙,你說(shuō)我怎么就攤上這事嚎朽。” “怎么了柬帕?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,814評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵哟忍,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我陷寝,道長(zhǎng)锅很,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,869評(píng)論 1 299
  • 正文 為了忘掉前任凤跑,我火速辦了婚禮爆安,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘仔引。我一直安慰自己扔仓,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布咖耘。 她就那樣靜靜地躺著翘簇,像睡著了一般。 火紅的嫁衣襯著肌膚如雪儿倒。 梳的紋絲不亂的頭發(fā)上版保,一...
    開(kāi)封第一講書(shū)人閱讀 52,475評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音夫否,去河邊找鬼彻犁。 笑死,一個(gè)胖子當(dāng)著我的面吹牛凰慈,可吹牛的內(nèi)容都是我干的汞幢。 我是一名探鬼主播,決...
    沈念sama閱讀 41,010評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼溉瓶,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼急鳄!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起堰酿,我...
    開(kāi)封第一講書(shū)人閱讀 39,924評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤疾宏,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后触创,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體坎藐,經(jīng)...
    沈念sama閱讀 46,469評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了岩馍。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片碉咆。...
    茶點(diǎn)故事閱讀 40,680評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖蛀恩,靈堂內(nèi)的尸體忽然破棺而出疫铜,到底是詐尸還是另有隱情,我是刑警寧澤双谆,帶...
    沈念sama閱讀 36,362評(píng)論 5 351
  • 正文 年R本政府宣布壳咕,位于F島的核電站,受9級(jí)特大地震影響顽馋,放射性物質(zhì)發(fā)生泄漏谓厘。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評(píng)論 3 335
  • 文/蒙蒙 一寸谜、第九天 我趴在偏房一處隱蔽的房頂上張望竟稳。 院中可真熱鬧,春花似錦熊痴、人聲如沸他爸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,519評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)讲逛。三九已至,卻和暖如春岭埠,著一層夾襖步出監(jiān)牢的瞬間盏混,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,621評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工惜论, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留许赃,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,099評(píng)論 3 378
  • 正文 我出身青樓馆类,卻偏偏與公主長(zhǎng)得像混聊,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子乾巧,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評(píng)論 2 361

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

  • *面試心聲:其實(shí)這些題本人都沒(méi)怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個(gè)offer,總結(jié)起來(lái)就是把...
    Dove_iOS閱讀 27,166評(píng)論 30 470
  • GCD調(diào)度隊(duì)列是執(zhí)行任務(wù)的強(qiáng)大工具句喜。調(diào)度隊(duì)列允許您相對(duì)于調(diào)度者異步或者同步的執(zhí)行任意代碼塊。您能夠使用調(diào)度隊(duì)列來(lái)執(zhí)...
    坤坤同學(xué)閱讀 6,676評(píng)論 1 3
  • iOS中GCD的使用小結(jié) 作者dullgrass 2015.11.20 09:41*字?jǐn)?shù) 4996閱讀 20199...
    DanDanC閱讀 835評(píng)論 0 0
  • 背景 擔(dān)心了兩周的我終于輪到去醫(yī)院做胃鏡檢查了沟于!去的時(shí)候我都想好了最壞的可能(胃癌)咳胃,之前在網(wǎng)上查的癥狀都很相似。...
    Dely閱讀 9,245評(píng)論 21 42
  • 多線程旷太、特別是NSOperation 和 GCD 的內(nèi)部原理展懈。運(yùn)行時(shí)機(jī)制的原理和運(yùn)用場(chǎng)景销睁。SDWebImage的原...
    LZM輪回閱讀 2,009評(píng)論 0 12