在Objective-C中,我可以創建類別來擴展類。我也可以爲它們添加屬性,因爲它們基本上只是方法。但是我不能用@synthesize或其他任何我知道的方式來綁定它們。因此,只要我嘗試使用它們,應用程序就會崩潰。Objective-C類別和屬性
在類別中是否有任何屬性使用,或者它們只是可能的,因爲它會打破語言的邏輯來禁止它們。你能否給我一個場景來定義一個類別中的屬性會有意義?
在Objective-C中,我可以創建類別來擴展類。我也可以爲它們添加屬性,因爲它們基本上只是方法。但是我不能用@synthesize或其他任何我知道的方式來綁定它們。因此,只要我嘗試使用它們,應用程序就會崩潰。Objective-C類別和屬性
在類別中是否有任何屬性使用,或者它們只是可能的,因爲它會打破語言的邏輯來禁止它們。你能否給我一個場景來定義一個類別中的屬性會有意義?
在類別中定義屬性的主要用途是創建類的擴展,當我們創建類擴展的時候有類的幫助,那麼我們可以定義屬性併合成它們。這是實現隱藏屬性的方法公共訪問。
您可以檢查此瞭解更多信息 - http://www.techpaa.com/2012/04/adding-properties-to-categories-and.html
從The Objective-C Programming Language引導
一個類別可以讓你的方法添加到現有的班級,甚至到一個 對你沒有來源。類別是功能強大的 功能,允許您擴展現有的 類的功能,而無需進行子類化。
既然要
屬性添加到它們,因爲它們基本上只方法
您可以使用類的方法添加到類。
以及用於類擴展的類別是什麼。 – rishi
@ rishi文檔中顯示「類擴展類似」。這意味着班級擴展和類別是兩個不同的東西 –
班級擴展和類別確實非常不同。在擴展中,我可以定義一個屬性,然後將其合成。在一個類別中,我無法綜合這些屬性。但是我也不能創建ivars,所以我也不能真正爲自己實現getter和setter。 –
見我的回答對您的其他問題:http://stackoverflow.com/questions/10502539/objective-c-category-and-new-ivar(爲什麼你問兩次基本相同的問題?) –
謝謝。我認爲,除了解決我的具體問題之外,對於類別中的哪些屬性是有利的,還可能會有一個更一般的問題,這也許會很有趣。然而你的答案似乎已經提供了兩個。 :) –
[Objective-C:Property in Category]的可能重複(http://stackoverflow.com/questions/8733104/objective-c-property-in-category) – hfossli