NSSet的唯一性判斷

我們已經(jīng)知道NSSet是一個保證唯一性的集合之宿,但是它是如何保證唯一性的呢咪笑,調(diào)用addObject時是如何判斷唯一性的呢?

創(chuàng)建一個測試類繼承于NSObject,如下:

//NSTest.h

#import <Foundation/Foundation.h>

@interface NSTest :NSObject

@end

NSTest.m什么也不做除嘹,測試代碼如下:

NSMutableSet* setA = [NSMutableSet new];

NSTest* test1 = [[NSTest alloc]init];

[setA addObject:test1];

NSTest* test2 = [[NSTest alloc]init];

[setA addObject:test2];

NSLog(@"setA : %@", setA);

打印結(jié)果是setA里面有2個NSTest的對象

接著修改NSTest.m,添加2個繼承自NSObject的函數(shù)

- (BOOL)isEqual: (id)other

{

return YES;

}

- (NSUInteger)hash

{

return 1;

}

這時候再執(zhí)行之前的測試代碼岸蜗,setA里面就只有一個NSTest對象了

也就是說set是根據(jù)hash函數(shù)和isEqual來確定一個對象是否已經(jīng)存在于set內(nèi)尉咕,再深入點修改這2個函數(shù)的不同返回值,就會發(fā)現(xiàn)璃岳,是先判斷2個對象的hash值是否一致年缎,如果一致再判斷其isEqual值。

明白了這點铃慷,就可以通過重寫isEqual和hash來定制我們自己的業(yè)務(wù)流程单芜,使用set來做唯一性判斷了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末犁柜,一起剝皮案震驚了整個濱河市洲鸠,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌馋缅,老刑警劉巖扒腕,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異萤悴,居然都是意外死亡瘾腰,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進(jìn)店門覆履,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蹋盆,“玉大人,你說我怎么就攤上這事硝全」窒樱” “怎么了?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵柳沙,是天一觀的道長。 經(jīng)常有香客問我拌倍,道長赂鲤,這世上最難降的妖魔是什么噪径? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮数初,結(jié)果婚禮上找爱,老公的妹妹穿的比我還像新娘。我一直安慰自己泡孩,他們只是感情好车摄,可當(dāng)我...
    茶點故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著仑鸥,像睡著了一般吮播。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上眼俊,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天意狠,我揣著相機(jī)與錄音,去河邊找鬼疮胖。 笑死环戈,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的澎灸。 我是一名探鬼主播院塞,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼性昭!你這毒婦竟也來了拦止?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤巩梢,失蹤者是張志新(化名)和其女友劉穎创泄,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體括蝠,經(jīng)...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡鞠抑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了忌警。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片搁拙。...
    茶點故事閱讀 40,852評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖法绵,靈堂內(nèi)的尸體忽然破棺而出箕速,到底是詐尸還是另有隱情,我是刑警寧澤朋譬,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布盐茎,位于F島的核電站,受9級特大地震影響徙赢,放射性物質(zhì)發(fā)生泄漏字柠。R本人自食惡果不足惜探越,卻給世界環(huán)境...
    茶點故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望窑业。 院中可真熱鬧钦幔,春花似錦、人聲如沸常柄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽西潘。三九已至卷玉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間秸架,已是汗流浹背揍庄。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留东抹,地道東北人蚂子。 一個月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像缭黔,于是被迫代替她去往敵國和親食茎。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,851評論 2 361

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

  • 前言 對數(shù)據(jù)的等同性判斷包括對基本數(shù)據(jù)類型等同性的判斷和對象等同性的判斷馏谨。對基本數(shù)據(jù)類型等同性的判斷是非常簡單的别渔,...
    VV木公子閱讀 1,470評論 0 8
  • Objective-C作為面向?qū)ο缶幊毯袄埽皩ο蟆保╫bject)就是“基本構(gòu)造單元”(building block...
    Mark_Lin閱讀 336評論 0 1
  • Objc 相等性判斷 今天做任務(wù)時遇到一個問題拨与,情況是這樣的:我新建一個類,然后創(chuàng)建一個這個類的對象艾猜,然后將這個類...
    凌巔閱讀 1,515評論 0 1
  • 轉(zhuǎn)至元數(shù)據(jù)結(jié)尾創(chuàng)建: 董瀟偉买喧,最新修改于: 十二月 23, 2016 轉(zhuǎn)至元數(shù)據(jù)起始第一章:isa和Class一....
    40c0490e5268閱讀 1,732評論 0 9
  • 舌頂上腭搭座橋 忙里偷閑睡一覺 希夷先生來指導(dǎo) 諸般煩惱盡皆銷
    緣渡閱讀 184評論 3 1