NSArray簡(jiǎn)單細(xì)說(五)—— 數(shù)組中對(duì)象的查找

版本記錄

版本號(hào) 時(shí)間
V1.0 2017.08.25

前言

NSArray是集合類型中的一種蚌卤,是OC中很重要的概念筐付,這個(gè)是我們一定會(huì)用到的對(duì)象,下面我就繼續(xù)由整體到細(xì)節(jié)记靡,由簡(jiǎn)單到復(fù)雜的和大家說一下它的用法谈竿。感興趣的可以看我寫的上篇幾篇团驱。
1. NSArray簡(jiǎn)單細(xì)說(一)—— 整體了解
2. NSArray簡(jiǎn)單細(xì)說(二)—— 數(shù)組的創(chuàng)建
3. NSArray簡(jiǎn)單細(xì)說(三)—— 數(shù)組初始化
4. NSArray簡(jiǎn)單細(xì)說(四)—— 數(shù)組的查詢與檢索

一、- (NSUInteger)indexOfObject:(ObjectType)anObject;

該方法的作用就是:返回相應(yīng)數(shù)組值等于給定對(duì)象的最低索引空凸。返回值表示相應(yīng)數(shù)組值等于anObject的最低索引嚎花。 如果數(shù)組中的任何對(duì)象都不等于anObject,則返回NSNotFound呀洲。

從索引0開始紊选,數(shù)組的每個(gè)元素作為參數(shù)傳遞給發(fā)送到aObjectisEqual:消息,直到找到匹配或達(dá)到數(shù)組的結(jié)尾道逗。 如果isEqual :(在NSObject協(xié)議中聲明)返回YES兵罢,則對(duì)象被認(rèn)為是相等的。

下面看一下代碼

- (void)demoIndexOfObject
{
    NSArray *arr = @[@"How", @"are", @"you", @"Miss", @"You"];
    
    NSInteger index = [arr indexOfObject:@"are"];
    NSLog(@"index = %ld", index);
}

下面看輸出結(jié)果

2017-08-25 11:13:21.704 JJOC[4205:106064] index = 1

結(jié)論:很簡(jiǎn)單滓窍,看看就可以了卖词。


二、- (NSUInteger)indexOfObject:(ObjectType)anObject inRange:(NSRange)range;

該方法的作用就是:返回指定范圍內(nèi)的最小索引贰您,其對(duì)應(yīng)的數(shù)組值等于給定對(duì)象坏平。對(duì)應(yīng)數(shù)組值等于Object的范圍內(nèi)的最小索引。 如果范圍內(nèi)的任何對(duì)象都不等于一個(gè)對(duì)象锦亦,則返回NSNotFound

range.location開始令境,數(shù)組的每個(gè)元素作為參數(shù)傳遞給發(fā)送到anObjectisEqual:消息杠园,直到找到匹配或達(dá)到范圍的結(jié)尾。 如果isEqual:對(duì)象被視為相等舔庶,則返回YES抛蚁。如果range參數(shù)表示數(shù)組中不存在的范圍,則此方法將引發(fā)NSRangeException異常惕橙。

下面我們看代碼

- (void)demoIndexOfObjectRange
{
    NSArray *arr = @[@"How", @"are", @"you", @"Miss", @"You"];

    NSInteger index1 = [arr indexOfObject:@"You" inRange:NSMakeRange(0, 1)];
    NSLog(@"index1 = %ld", index1);
    
    NSInteger index2 = [arr indexOfObject:@"You" inRange:NSMakeRange(0, arr.count)];
    NSLog(@"index2 = %ld", index2);
}

下面看輸出結(jié)果

2017-08-25 11:20:26.991 JJOC[4541:115574] index1 = 9223372036854775807
2017-08-25 11:20:26.991 JJOC[4541:115574] index2 = 4

結(jié)論:很簡(jiǎn)單瞧甩,看看就可以了。


三弥鹦、- (NSUInteger)indexOfObjectIdenticalTo:(ObjectType)anObject;

該方法的作用就是:返回對(duì)應(yīng)數(shù)組值與給定對(duì)象相同的最低索引肚逸。對(duì)于返回值,相應(yīng)數(shù)組值與anObject相同的最低索引彬坏。 如果數(shù)組中的任何對(duì)象與anObject相同朦促,則返回NSNotFound

下面我們看代碼

- (void)demoIndexOfObjectIdenticalTo
{
    NSArray *arr = @[@"How", @"are", @"you", @"Miss", @"You"];
    
    NSInteger index = [arr indexOfObjectIdenticalTo:@"are"];
    NSLog(@"index = %ld", index);
}

下面看輸出結(jié)果

2017-08-25 11:24:34.290 JJOC[4725:121132] index = 1

結(jié)論:很簡(jiǎn)單栓始,看看就可以了务冕。


四、- (NSUInteger)indexOfObjectIdenticalTo:(ObjectType)anObject inRange:(NSRange)range;

該方法的作用就是:返回指定范圍內(nèi)的最小索引幻赚,其對(duì)應(yīng)的數(shù)組值等于給定對(duì)象禀忆。對(duì)于返回值臊旭,對(duì)應(yīng)數(shù)組值與Object相同的范圍內(nèi)的最小索引。 如果范圍內(nèi)的任何對(duì)象與對(duì)象相同箩退,則返回NSNotFound巍扛。

這里還要注意:如果對(duì)象的對(duì)象地址相同,則對(duì)象被認(rèn)為是相同的乏德。

下面我們看代碼

- (void)demoIndexOfObjectIdenticalToRange
{
    NSArray *arr = @[@"How", @"are", @"you", @"Miss", @"You"];
    
    NSInteger index1 = [arr indexOfObjectIdenticalTo:@"You" inRange:NSMakeRange(0, 1)];
    NSLog(@"index1 = %ld", index1);
    
    NSInteger index2 = [arr indexOfObjectIdenticalTo:@"You" inRange:NSMakeRange(0, arr.count)];

    NSLog(@"index2 = %ld", index2);
}

下面看輸出結(jié)果

2017-08-25 11:29:00.143 JJOC[4922:127550] index1 = 9223372036854775807
2017-08-25 11:29:00.143 JJOC[4922:127550] index2 = 4

結(jié)論:很簡(jiǎn)單撤奸,看看就可以了。


五喊括、- (NSUInteger)indexOfObjectPassingTest:(BOOL (^)(ObjectType obj, NSUInteger idx, BOOL *stop))predicate;

該方法的作用就是:返回?cái)?shù)組中通過給定塊中測(cè)試的第一個(gè)對(duì)象的索引胧瓜。

下面我們看一下參數(shù)和返回值:

  • predicate:要應(yīng)用于數(shù)組元素的塊。塊有三個(gè)參數(shù):
    • obj:數(shù)組中的元素郑什。
    • idx:數(shù)組中元素的索引府喳。
    • stop:對(duì)布爾值的引用。 該塊可以將值設(shè)置為YES以停止對(duì)數(shù)組的進(jìn)一步枚舉蘑拯。 如果一個(gè)程序段停止進(jìn)一步的枚舉钝满,該程序段將繼續(xù)運(yùn)行直到完成。 停止參數(shù)是一個(gè)out-only參數(shù)申窘。 您應(yīng)該只在塊中將此布爾值設(shè)置為YES弯蚜。

該塊返回一個(gè)布爾值,指示obj是否通過了測(cè)試剃法。 返回YES將停止數(shù)組的進(jìn)一步處理碎捺。

  • return :數(shù)組中相應(yīng)值通過謂詞指定的測(cè)試的最低索引。 如果數(shù)組中沒有對(duì)象通過測(cè)試贷洲,則返回NSNotFound收厨。

下面我們就看一下代碼

- (void)demoIndexOfObjectPassingTest
{
    NSArray *arr = @[@"How", @"are", @"you", @"Miss", @"You"];
    NSInteger index = [arr indexOfObjectPassingTest:^BOOL(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
        if ([obj isEqualToString:@"Miss"]) {
            * stop = YES;
            return YES;
        }
        
        return NO;
    }];
    
    NSLog(@"index = %ld", index);
}

下面看輸出結(jié)果

2017-08-25 11:43:10.696 JJOC[5389:144910] index = 3

結(jié)論:很簡(jiǎn)單,看看就可以了优构。


六诵叁、- (NSUInteger)indexOfObjectWithOptions:(NSEnumerationOptions)opts passingTest:(BOOL (^)(ObjectType obj, NSUInteger idx, BOOL *stop))predicate;

該方法的作用就是:返回?cái)?shù)組中的對(duì)象,該對(duì)象在給定的塊中傳遞給定的枚舉選項(xiàng)集的測(cè)試钦椭。

下面看一下參數(shù)和返回值:

  • opts:一個(gè)位掩碼拧额,指定枚舉的選項(xiàng)(是否應(yīng)同時(shí)執(zhí)行,是否應(yīng)以相反的順序執(zhí)行)玉凯。是一個(gè)枚舉值势腮,如下所以。
typedef NS_OPTIONS(NSUInteger, NSEnumerationOptions) {
    NSEnumerationConcurrent = (1UL << 0),
    NSEnumerationReverse = (1UL << 1),
};
  • predicate:要應(yīng)用于數(shù)組元素的塊漫仆。塊有三個(gè)參數(shù):
    • obj:數(shù)組中的元素捎拯。
    • idx:數(shù)組中元素的索引。
    • stop:對(duì)布爾值的引用。 該塊可以將值設(shè)置為YES以停止對(duì)數(shù)組的進(jìn)一步枚舉署照。 如果一個(gè)程序段停止進(jìn)一步的枚舉祸泪,該程序段將繼續(xù)運(yùn)行直到完成。 停止參數(shù)是一個(gè)out-only參數(shù)建芙。 您應(yīng)該只在塊中將此布爾值設(shè)置為YES没隘。

該塊返回一個(gè)布爾值,指示obj是否通過了測(cè)試禁荸。 返回YES將停止數(shù)組的進(jìn)一步處理右蒲。

  • return :數(shù)組中相應(yīng)的值通過謂詞和opts指定的測(cè)試的索引。 如果opts位掩碼指定反向順序赶熟,則返回匹配的最后一個(gè)項(xiàng)瑰妄。 否則,返回第一個(gè)匹配對(duì)象的索引映砖。 如果數(shù)組中沒有對(duì)象通過測(cè)試间坐,則返回NSNotFound

需要注意的是:

  • 默認(rèn)情況下邑退,枚舉從第一個(gè)對(duì)象開始竹宋,并通過數(shù)組連續(xù)地繼續(xù)到最后一個(gè)對(duì)象。 您可以指定NSEnumerationConcurrent和/或NSEnumerationReverse作為枚舉選項(xiàng)來修改此行為地技。
  • 如果block參數(shù)為nil蜈七,此方法將引發(fā)異常。

下面看代碼

- (void)demoIndexOfObjectWithOptions
{
    NSArray *arr = @[@"How", @"are", @"you", @"Miss", @"You"];
    NSInteger index = [arr indexOfObjectWithOptions:NSEnumerationConcurrent passingTest:^BOOL(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
        if ([obj isEqualToString:@"Miss"]) {
            * stop = YES;
            return YES;
        }
        
        return NO;
    }];
    NSLog(@"index = %ld", index);
}

下面看輸出結(jié)果

2017-08-25 12:09:37.204 JJOC[6075:170839] index = 3

結(jié)論:很簡(jiǎn)單乓土,看看就可以了宪潮。


七、- (NSUInteger)indexOfObjectAtIndexes:(NSIndexSet *)s options:(NSEnumerationOptions)opts passingTest:(BOOL (^)(ObjectType obj, NSUInteger idx, BOOL *stop))predicate;

該方法的作用:從給定的一組索引中返回在給定塊中為特定的枚舉選項(xiàng)集傳遞測(cè)試的數(shù)組中的第一個(gè)對(duì)象的索引趣苏。

下面我們看一下參數(shù)和返回值:

  • s:要枚舉的對(duì)象的索引。
  • opts :一個(gè)位掩碼梯轻,指定枚舉的選項(xiàng)(是否應(yīng)同時(shí)執(zhí)行食磕,是否應(yīng)以相反的順序執(zhí)行)。是一個(gè)枚舉值喳挑,前面已經(jīng)說過了彬伦,這里就不多說了。
  • predicate:要應(yīng)用于數(shù)組元素的塊伊诵。塊有三個(gè)參數(shù):
    • obj:數(shù)組中的元素单绑。
    • idx:數(shù)組中元素的索引。
    • stop:對(duì)布爾值的引用曹宴。 該塊可以將值設(shè)置為YES以停止對(duì)數(shù)組的進(jìn)一步枚舉搂橙。 如果一個(gè)程序段停止進(jìn)一步的枚舉,該程序段將繼續(xù)運(yùn)行直到完成笛坦。 停止參數(shù)是一個(gè)out-only參數(shù)区转。 您應(yīng)該只在塊中將此布爾值設(shè)置為YES苔巨。
  • return:數(shù)組中相應(yīng)值通過謂詞指定的測(cè)試的最低索引。 如果數(shù)組中沒有對(duì)象通過測(cè)試废离,則返回NSNotFound侄泽。

這里還要注意:

  • 默認(rèn)情況下,枚舉從第一個(gè)對(duì)象開始蜻韭,并且通過數(shù)組連續(xù)地繼續(xù)到由indexSet指定的最后一個(gè)元素悼尾。 您可以指定NSEnumerationConcurrent和/或NSEnumerationReverse作為枚舉選項(xiàng)來修改此行為。
  • 如果block參數(shù)或indexSet為nil肖方,此方法將引發(fā)異常闺魏。

下面看代碼

- (void)demoIndexOfObjectAtIndexes
{
    NSArray *arr = @[@"How", @"are", @"you", @"Miss", @"You"];
    NSIndexSet *set = [NSIndexSet indexSetWithIndex:3];
    NSInteger index = [arr indexOfObjectAtIndexes:set options:NSEnumerationConcurrent passingTest:^BOOL(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
        if ([obj isEqualToString:@"You"]) {
            * stop = YES;
            return YES;
        }
        
        NSLog(@"NO");
        return NO;
    }];
    NSLog(@"index = %ld", index);
}

下面看輸出結(jié)果

2017-08-25 12:24:52.962 JJOC[6485:186972] NO
2017-08-25 12:24:52.963 JJOC[6485:186972] index = 9223372036854775807

結(jié)論:很簡(jiǎn)單,看看就可以了窥妇。


八舷胜、- (NSIndexSet *)indexesOfObjectsPassingTest:(BOOL (^)(ObjectType obj, NSUInteger idx, BOOL *stop))predicate;

該方法的作用就是:返回在給定塊中通過測(cè)試的數(shù)組中的對(duì)象的索引。

對(duì)于參數(shù)這里就不多說了活翩,前面都已經(jīng)說過了烹骨。對(duì)于返回值,數(shù)組中相應(yīng)值的索引通過謂詞指定的測(cè)試材泄。 如果數(shù)組中沒有對(duì)象通過測(cè)試沮焕,則返回一個(gè)空索引集。

下面看代碼

- (void)demoIndexesOfObjectsPassingTest
{
    NSArray *arr = @[@"How", @"are", @"you", @"Miss", @"You"];
    NSIndexSet *set = [arr indexesOfObjectsPassingTest:^BOOL(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
        if ([obj isEqualToString:@"Miss"]) {
            * stop = YES;
            return YES;
        }
        
        return NO;
    }];
    
    NSLog(@"indexSet = %@", set);
}

下面看輸出結(jié)果

2017-08-25 12:29:58.274 JJOC[6667:192427] indexSet = <_NSCachedIndexSet: 0x608000221300>[number of indexes: 1 (in 1 ranges), indexes: (3)]

結(jié)論:很簡(jiǎn)單拉宗,看看就可以了峦树。


九、- (NSIndexSet *)indexesOfObjectsWithOptions:(NSEnumerationOptions)opts passingTest:(BOOL (^)(ObjectType obj, NSUInteger idx, BOOL *stop))predicate;

該方法的作用就是:返回?cái)?shù)組中對(duì)于給定的一組枚舉選項(xiàng)在給定塊中傳遞測(cè)試的對(duì)象的索引旦事。

對(duì)于參數(shù)也不多說了魁巩,前面已經(jīng)說過了。

這里還要注意:

  • 對(duì)于返回值姐浮,數(shù)組中相應(yīng)值的索引通過謂詞指定的測(cè)試谷遂。 如果數(shù)組中沒有對(duì)象通過測(cè)試,則返回一個(gè)空索引集卖鲤。
  • 默認(rèn)情況下肾扰,枚舉從第一個(gè)對(duì)象開始,并通過數(shù)組連續(xù)地繼續(xù)到最后一個(gè)對(duì)象蛋逾。 您可以指定NSEnumerationConcurrent和/或NSEnumerationReverse作為枚舉選項(xiàng)來修改此行為集晚。
  • 如果block參數(shù)為nil,此方法將引發(fā)異常区匣。

下面看代碼

- (void)demoindexesOfObjectsWithOptions
{
    NSArray *arr = @[@"How", @"are", @"you", @"Miss", @"You"];
    NSIndexSet *set = [arr indexesOfObjectsWithOptions:NSEnumerationReverse passingTest:^BOOL(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
        if ([obj isEqualToString:@"Miss"]) {
            * stop = YES;
            return YES;
        }
        
        return NO;
    }];
    
    NSLog(@"indexSet = %@", set);
}

下面看結(jié)果

2017-08-25 12:37:43.290 JJOC[6901:200113] indexSet = <_NSCachedIndexSet: 0x60800002d4a0>[number of indexes: 1 (in 1 ranges), indexes: (3)]

結(jié)論:很簡(jiǎn)單偷拔,看看就可以了。


十、- (NSIndexSet *)indexesOfObjectsAtIndexes:(NSIndexSet *)s options:(NSEnumerationOptions)opts passingTest:(BOOL (^)(ObjectType obj, NSUInteger idx, BOOL *stop))predicate;

該方法的作用就是:從給定的一組索引中返回在給定塊中為特定的枚舉選項(xiàng)集傳遞測(cè)試的數(shù)組中的對(duì)象的索引条摸。

這里還要注意:

  • 數(shù)組中相應(yīng)值的索引通過謂詞指定的測(cè)試悦污。 如果數(shù)組中沒有對(duì)象通過測(cè)試,則返回一個(gè)空索引集钉蒲。
  • 默認(rèn)情況下切端,枚舉從第一個(gè)對(duì)象開始,并且通過數(shù)組連續(xù)地繼續(xù)到由indexSet指定的最后一個(gè)元素顷啼。 您可以指定NSEnumerationConcurrent和/或NSEnumerationReverse作為枚舉選項(xiàng)來修改此行為踏枣。
  • 如果block參數(shù)或indexSet為nil,此方法將引發(fā)異常钙蒙。

下面我們看代碼

- (void)demoIndexesOfObjectsAtIndexesOptions
{
    NSArray *arr = @[@"How", @"are", @"you", @"Miss", @"You"];
    NSIndexSet *preSet = [NSIndexSet indexSetWithIndex:3];
    NSIndexSet *set = [arr indexesOfObjectsAtIndexes:preSet options:NSEnumerationConcurrent passingTest:^BOOL(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
        if ([obj isEqualToString:@"Miss"]) {
            * stop = YES;
            return YES;
        }
        
        return NO;

    }];
    
    NSLog(@"indexSet = %@", set);
}

下面看輸出結(jié)果

2017-08-25 12:48:56.007 JJOC[7200:211534] indexSet = <_NSCachedIndexSet: 0x60000002a460>[number of indexes: 1 (in 1 ranges), indexes: (3)]

結(jié)論:很簡(jiǎn)單茵瀑,看看就可以了。


十一躬厌、- (NSUInteger)indexOfObject:(ObjectType)obj inSortedRange:(NSRange)r options:(NSBinarySearchingOptions)opts usingComparator:(NSComparator)cmp;

該方法的作用就是:使用給定的NSComparator塊马昨,返回與數(shù)組中的元素相比較的對(duì)象的指定范圍內(nèi)的索引。也可以簡(jiǎn)說:指定區(qū)域返回通過代碼塊方法的索引扛施,實(shí)現(xiàn)的就是二分查找鸿捧。

下面看一下參數(shù)和返回值:

  • obj:在數(shù)組中搜索的對(duì)象。如果此值為nil疙渣,則拋出NSInvalidArgumentException匙奴。
  • r:數(shù)組中的范圍來搜索obj。如果r超出數(shù)組的邊界(如果位置加上范圍的長(zhǎng)度大于數(shù)組的數(shù)目)妄荔,則拋出NSRangeException泼菌。
  • opts :搜索選項(xiàng)。 有關(guān)可能的值啦租,請(qǐng)參閱NSBinarySearchingOptions哗伯。如果同時(shí)指定NSBinarySearchingFirstEqualNSBinarySearchingLastEqual,則拋出NSInvalidArgumentException異常篷角。
    它是一個(gè)枚舉笋颤,如下所示:
typedef NS_OPTIONS(NSUInteger, NSBinarySearchingOptions) {
    NSBinarySearchingFirstEqual = (1UL << 8),
    NSBinarySearchingLastEqual = (1UL << 9),
    NSBinarySearchingInsertionIndex = (1UL << 10),
};
  • cmp:用于將對(duì)象obj與數(shù)組中的元素進(jìn)行比較的比較器塊。如果此值為NULL内地,則拋出NSInvalidArgumentException
  • return :對(duì)于返回值可以參考下面的關(guān)系赋除。

如果未指定NSBinarySearchingInsertionIndex選項(xiàng):

  • 如果找到obj阱缓,并且未指定NSBinarySearchingFirstEqualNSBinarySearchingLastEqual,則返回任意匹配對(duì)象的索引举农。
  • 如果還指定了NSBinarySearchingFirstEqual選項(xiàng)荆针,則返回相等對(duì)象的最低索引。
  • 如果還指定了NSBinarySearchingLastEqual選項(xiàng),則返回相等對(duì)象的最高索引航背。
  • 如果沒有找到該對(duì)象喉悴,返回NSNotFound

如果指定了NSBinarySearchingInsertionIndex選項(xiàng)玖媚,則返回您應(yīng)該插入obj的索引箕肃,以便維護(hù)排序的數(shù)組:

  • 如果找到了obj,并且未指定NSBinarySearchingFirstEqualNSBinarySearchingLastEqual今魔,則返回與任何匹配對(duì)象的索引相等或相等的一個(gè)索引勺像。
  • 如果還指定了NSBinarySearchingFirstEqual選項(xiàng),則返回相等對(duì)象的最低索引
  • 如果還指定了NSBinarySearchingLastEqual選項(xiàng)错森,則返回相等對(duì)象的最高索引吟宦。
  • 如果未找到對(duì)象,則返回最小更大對(duì)象的索引涩维,或者如果對(duì)象大于所有其他元素殃姓,則返回?cái)?shù)組末尾的索引。

這里還要注意:

  • 必須使用比較器cmp對(duì)數(shù)組中的元素進(jìn)行排序瓦阐。 如果數(shù)組未排序蜗侈,則結(jié)果未定義。

下面看代碼

- (void)demoIndexOfObjectComparator
{
    NSArray *arr = @[@"1", @"2", @"3", @"4", @"5"];
    NSInteger *index = [arr indexOfObject:@"4" inSortedRange:NSMakeRange(0, arr.count) options:NSBinarySearchingLastEqual usingComparator:^NSComparisonResult(id  _Nonnull obj1, id  _Nonnull obj2) {
      
        return [obj1 compare:obj2];
    }];
    
    NSLog(@"index = %d", index);
}

下面看輸出結(jié)果

2017-08-25 15:25:08.410 JJOC[10137:295858] index = 3

參考文章

1. [Objective-C] NSArray的二分查找

后記

未完垄分,待續(xù)~~~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末宛篇,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子薄湿,更是在濱河造成了極大的恐慌叫倍,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件豺瘤,死亡現(xiàn)場(chǎng)離奇詭異吆倦,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)坐求,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門蚕泽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人桥嗤,你說我怎么就攤上這事须妻。” “怎么了泛领?”我有些...
    開封第一講書人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵荒吏,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我渊鞋,道長(zhǎng)绰更,這世上最難降的妖魔是什么瞧挤? 我笑而不...
    開封第一講書人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮儡湾,結(jié)果婚禮上特恬,老公的妹妹穿的比我還像新娘。我一直安慰自己徐钠,他們只是感情好癌刽,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著丹皱,像睡著了一般妒穴。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上摊崭,一...
    開封第一講書人閱讀 51,688評(píng)論 1 305
  • 那天讼油,我揣著相機(jī)與錄音,去河邊找鬼呢簸。 笑死矮台,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的根时。 我是一名探鬼主播瘦赫,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼蛤迎!你這毒婦竟也來了确虱?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤替裆,失蹤者是張志新(化名)和其女友劉穎校辩,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體辆童,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡宜咒,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了把鉴。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片故黑。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖庭砍,靈堂內(nèi)的尸體忽然破棺而出场晶,到底是詐尸還是另有隱情,我是刑警寧澤怠缸,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布峰搪,位于F島的核電站,受9級(jí)特大地震影響凯旭,放射性物質(zhì)發(fā)生泄漏概耻。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一罐呼、第九天 我趴在偏房一處隱蔽的房頂上張望鞠柄。 院中可真熱鬧,春花似錦嫉柴、人聲如沸厌杜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽夯尽。三九已至,卻和暖如春登馒,著一層夾襖步出監(jiān)牢的瞬間匙握,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來泰國(guó)打工陈轿, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留圈纺,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓麦射,卻偏偏與公主長(zhǎng)得像蛾娶,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子潜秋,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355

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