協議可以在某種程度上提供匿名型別,當介面背後有多個不同的實現類,又不想宣告指定哪個類時,可以使用這種方法.因為有時候這些類會變,有時候又無法容納於標準的類繼承體系中,不能以某個公共基類來統一標示.
在一些情況下,物件的型別並不重要,重要的是物件有沒有實現某些方法,可以用"匿名型別"來表達該概念.
在開發後續版本時,如果之前使用了"匿名物件"概念,則無需改變公有api,即可切換實現類.
如果想要隱藏api中的實現細節,也可以使用"匿名物件".
-(void)setobject:(id)object forkey:(id)key 這個方法中,key就可以視為"匿名物件",它可以是任何型別,只要遵守nsopying協議就好.
OC閱讀筆記一 盡量使用不可變物件
當將可變物件放入collection又修改值時,容易破壞set的內部資料結構,令其失去固有的語義 將屬性宣告為readonly後,當試圖改變屬性值時編譯器就會報錯.保證開發時物件的底層資料不會改變,物件本身的資料結構也就不可能出現不一致的現象.在物件內部 class continuation分類 可...
OC閱讀筆記十三 ARC 下
在方法中返回自動釋放物件的時候,會呼叫objc autoreleasereturnvalue函式檢測返回的物件是否執行retain操作,如果執行就設定全域性資料結構的乙個標誌位.而不執行autorelease操作.與之相似,如果呼叫方法的 要保留此物件,則呼叫objc retainautorelea...
Java筆記 9 匿名物件
沒有名字的物件稱為匿名物件。class people public void eat 測試類 class dome 結果 null活著真好 tom活著真好 上面的兩個new people 就是兩個個匿名物件,可以通過它呼叫類中的方法和屬性。又因為這兩個不是乙個物件,所以給第乙個匿名物件的name賦的...