一、概念
1、copy的目的在於修改源物件或者副本的時候互不影響
2、只有在不可變物件copy的時候才是淺拷貝,其餘都是深拷貝
二、自定義物件的copy(必須首先遵守nscopying協議)
1、自定義物件copy的必要步驟
1>遵守nscopying協議 2
>重寫
實現copywithzone:方法
2、arc的copy
實現copywithzone:(nszone *)zone
e.g.:person物件有兩個屬性name和age
- (id)copywithzone:(nszone *)zone
3、mrc的copy
1>做完必要的遵守協議和實現copywithzone方法
2>對oc物件屬性重寫其記憶體管理的setter方法
3>重寫dealloc方法
3、zone空間介紹
1>因為copywithzone:當中的zone就是要為物件開闢的記憶體空間(oc的alloc就是c語言的malloc開闢記憶體用的,同樣需要告訴系統你要開闢空間大小)
2>nszone空間分配出來的堆空間是相對比較連續的,可以減少記憶體碎片,一般程式開發沒有必要關心
OC 自定義 setDateFormat 顯示格式
nsstring getstringfromdate nsdate adate 以下是setdateformat可使用的英文代號 紀元的顯示 g 顯示ad,也就是公元 年的顯示 yy 年的後面2位數字 yyyy 顯示完整的年 月的顯示 m 顯示 成1 12,1位 數或2位 數mm 顯示成01 12,...
物件陣列。自定義物件
定義學生類屬性 自定義方法 顯示學生資訊方法年齡增加方法測試類 建立用於儲存學生的陣列,長度為5,建立5個學生物件,將物件儲存到陣列中遍歷陣列中的學生物件,分別呼叫年齡增加方法,將學生年齡增加2遍歷陣列中的學生物件,分別呼叫顯示資訊的方法,檢視所有學生資訊查詢年齡大於20的學生資訊 針對這個作業。寫...
建立自定義物件
你並不侷限於前幾節所討論的jscript的內建物件,你可以自定義包含有你自己的方法和屬性的物件來擴充jscript,這是jscript的乙個強大的特性。例如,你可以建立乙個名為webuser的物件,它包含參觀你網點的使用者的資訊,這個物件可以包含諸如使用者名稱 密碼和註冊狀態之類的屬性,將所有這些屬...