0

當創建一個類,一個BOOL財產申報往往是這樣的:Objective-C類別屬性獲得者的命名模式?

@property (nonatomic, getter=isActive) BOOL active; 

對於正常類和子類,命名吸氣is<#Key#>是有道理的,看起來銳利,是很好的if語句中使用。

什麼時候在一個類別中命名屬性?

我只是在執行上NSView一些輔助方法,當所有的突然,事情卻猙獰依次爲:

@property (nonatomic, readonly, getter=bsd_isFieldEditorDelegate) BOOL bsd_fieldEditorDelegate; 

(在我的情況bsd_)將推薦的前綴後,的語義值吸氣變化似乎會丟失。在這種情況下,我應該完全刪除getter名稱還是什麼?

我查看了整個文檔,但找不到明確的答案。有一個,還是我只是在超越它?

+0

怎麼樣isBsdFieldEditorDelegate? – Alex 2015-02-23 18:54:35

+0

@Alex我真的想過那個!我只是不知道是否有一個我應該遵循的約定。 – 2015-02-23 19:52:08

回答

0

不能在屬性Objective-C中使用屬性。而不是,您應該使用Objective-C RuntimeAssociated object。因此,屬性的屬性可能無法與關聯對象一起使用。

參考:Objective-C: Property/instance variable in category

+0

感謝您的鏈接。但是,根據Apple的文檔,「在類別接口中包含屬性聲明的語法是有效的,但不能在類別中聲明額外的實例變量。這意味着編譯器不會合成任何實例變量,也不會合成任何屬性訪問器方法。您可以在類別實現中編寫自己的訪問方法,但是除非已經由原始類存儲,否則您將無法跟蹤該屬性的值。「如果您注意到上面的內容,我已聲明屬性' readonly'。 – 2015-02-24 06:05:59

+0

繼續上面的評論:我沒有自己跟蹤任何狀態。我只是檢查視圖的窗口以獲得當前的第一響應者。然後我返回它是否是視圖的活動字段編輯器。因此,我不需要一個變量來跟蹤一個值。 – 2015-02-24 06:08:48

+0

爲什麼不聲明get方法而不是屬性?因爲在這種情況下財產沒有任何理由。只需簡單地聲明 - (BOOL)bsd_isFieldEditorDelegate。 – 2015-02-24 08:11:45