自定義字典鍵物件

2021-07-08 14:03:15 字數 1171 閱讀 3408

自定義字典鍵物件需要重寫下面3個方法(需要實現以下三個方法,我也是網上查的資料,但是我很好奇,他們怎麼知道要實現這些方法,是從官方文件知道的嗎,還是怎樣,如果有哪位大牛知道,還請賜教。。。。我也查了官方資料,但是一點都看不出來需要實現這幾個方法就行。。)

遵守nscoding協議

①,copywithzone:這個是必須重寫的,否則直接報找不到方法的錯誤

②,hash:這個你可以不重寫,主要是我不知道怎麼寫

③,isequal: 這個方法必須要重寫一下,你不重寫的話,預設的實現就是對比兩個物件的記憶體位址

只有在兩個物件是同乙個物件的時候,才會返回 yes。

當然這個不是我們所需要的,我們需要的就是直接構造乙個新的鍵物件,只要這個新構造的鍵物件中所包含的資料

與字典中的鍵相一致了,就取出字典中那個鍵物件所對應著的值物件~

以下是我的小demo

#import

@inte***ce

roominfokey :

nsobject

<

nscoding

>

@property

(nonatomic

,copy

) nsstring

*rtypeid;

@property

(nonatomic

,copy

) nsstring

*roomid;

- (id)copywithzone:(

nszone

*)zone;

@end

#import

"roominfokey.h"

@inte***ce

roominfokey()

@end

@implementation

roominfokey

//- (id)copywithzone:(nszone *)zone //

- (id)copywithzone:(

nszone

*)zone

return

acopy; }

- (bool

)isequal:(

id)object

returnno;

}- (

nsuinteger

)hash

@end

物件陣列。自定義物件

定義學生類屬性 自定義方法 顯示學生資訊方法年齡增加方法測試類 建立用於儲存學生的陣列,長度為5,建立5個學生物件,將物件儲存到陣列中遍歷陣列中的學生物件,分別呼叫年齡增加方法,將學生年齡增加2遍歷陣列中的學生物件,分別呼叫顯示資訊的方法,檢視所有學生資訊查詢年齡大於20的學生資訊 針對這個作業。寫...

建立自定義物件

你並不侷限於前幾節所討論的jscript的內建物件,你可以自定義包含有你自己的方法和屬性的物件來擴充jscript,這是jscript的乙個強大的特性。例如,你可以建立乙個名為webuser的物件,它包含參觀你網點的使用者的資訊,這個物件可以包含諸如使用者名稱 密碼和註冊狀態之類的屬性,將所有這些屬...

JS自定義物件

語法 obj name,age 表示物件obj的屬性名,冒號後面的為屬性值,像這種形式叫鍵值對 skill 是obj物件的方法1.字面量 2.工廠模式 3.建構函式模式 4.原型模式 5.混合模式 原型模式和建構函式模式的混合 var obj console.log obj name 什麼顏色 ob...