自定義字典鍵物件需要重寫下面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...