你能告訴我這些自定義訪問器的含義是:爲什麼你會接着加入該信息給setter自定義訪問器和屬性中的「=」?
:
@property (assign,getter=isSelected) BOOL selected;
以及有關二傳手,
@property (copy,setter=setDefaultTitle:) NSString* title;
是這樣的與編寫@synthesize title = defaultTitle相同?
感謝
你能告訴我這些自定義訪問器的含義是:爲什麼你會接着加入該信息給setter自定義訪問器和屬性中的「=」?
:
@property (assign,getter=isSelected) BOOL selected;
以及有關二傳手,
@property (copy,setter=setDefaultTitle:) NSString* title;
是這樣的與編寫@synthesize title = defaultTitle相同?
感謝
@property (assign,getter=isSelected) BOOL selected;
在你的頭文件
,指定要其他類能夠使用myObject.isSelected
訪問該屬性。您正在爲您的課程在公共界面中定義此名稱。
@synthesize title = defaultTitle;
在實現文件
,指定您已經定義了一個名爲title
其他類使用性質,但內部對你的類,你想實際使用的名稱defaultTitle
。這通常是在您聲明自己的私人實例變量defaultTitle
時完成的,您不希望人們直接修改它。
@property (assign,getter=isSelected) BOOL selected;
必須指定吸氣符合命名規則。見蘋果手冊引文:
通常應指定訪問是鍵值 編碼標準(見鍵 - 值編碼編程指南)-a共同 之所以採用吸氣裝飾是堅持以方法名 布爾值的isPropertyName約定。
@property (copy,setter=setDefaultTitle:) NSString* title;
這將是相同的,如果您還指定吸氣。您必須使用@synthesize title = defaultTitle;
爲您的getter/setter方法生成正確的方法名稱。
歡迎來到Stack Overflow。請閱讀[常見問題]。特別是,[不要使用簽名](http://stackoverflow.com/faq#signatures)(尤其是包含鏈接的鏈接,可能被視爲垃圾郵件)。如果您希望自己的姓名出現在帖子的底部,請在您的個人資料中更改您的用戶名。 – Gilles
@ user929170:謝謝,所以它是完全一樣的東西吧?唯一的區別是,如果你打電話給「isSmthg」或只是「smthg」的財產? – Paul
是的。另請參閱:[BOOL Obj-C的命名約定](http://stackoverflow.com/questions/806900/naming-conventions-for-bool-obj-c-2-properties) –
不,因爲你正在改變** setter **方法。 –