請幫我瞭解我們爲什麼使用@property
和@synthesis
?我們需要使用@dynamic
? 謝謝。@Dynamic的用法
-4
A
回答
0
@property
是accessors
聲明的編譯器。這只是一個聲明。這些差別很小。 支票here
0
@property和@synthesis一起工作,它可以幫助你自動定義setter和getter。在xcode 4.5中,@synthesis不是必需的,編譯器會自動添加它。
0
屬性
當我們寫了標題和作者更早的存取方法,你可能已經注意到了,代碼很簡單,而且很可能被推廣。
屬性是Objective-C中的一個特性,它允許我們自動生成訪問器,並且還具有其他一些優點。讓我們將Photo類轉換爲使用屬性。
下面是它看起來像以前一樣:
@interface Photo : NSObject {
NSString* caption;
NSString* photographer;
}
- (NSString*) caption;
- (NSString*) photographer;
- (void) setCaption: (NSString*)input;
- (void) setPhotographer: (NSString*)input;
@end
這裏是什麼樣子,一旦轉化爲性質 #進口:
#import <Cocoa/Cocoa.h>
@interface Photo : NSObject {
NSString* caption;
NSString* photographer;
}
@property (retain) NSString* caption;
@property (retain) NSString* photographer;
@end
的@property是一個Objective-C指令,它聲明屬性。括號中的「保留」指定設置者應該保留輸入值,並且該行的其餘部分僅指定該屬性的類型和名稱。
現在讓我們來看看類的實現:
#import "Photo.h"
@implementation Photo
@synthesize caption;
@synthesize photographer;
- (void) dealloc
{
[caption release];
[photographer release];
[super dealloc];
}
@end
的@synthesize指令自動生成getter和setter方法對我們來說,所以我們必須實現這個類是dealloc方法。
@synthesize將爲您的財產生成getter和setter方法。 @dynamic只是告訴了getter和setter方法是由類本身不實現,但在其他地方
+0
yah。這些我知道的所有事情。我們應該在哪裏使用?和我們不需要的地方? – SARANGA
相關問題
- 1. 使用Dynamic添加方法?
- 2. 引用@dynamic訪問器無法編譯
- 3. 用戶控件的Dynamic PlacementTarget?
- 4. ATG中Dynamic Bean的用途
- 5. 返回IEnumerable的<dynamic>從方法
- 6. Dynamic Hyperlink
- 7. Dynamic ContextMenuStrip
- 8. Dynamic leiningen:profiles
- 9. dynamic struts
- 10. Dynamic radiobuttonlist
- 11. Dynamic enlisting
- 12. Dynamic Partials
- 13. dynamic select_tag?
- 14. Dynamic Jcombobox
- 15. Dynamic embeddedForm
- 16. Dynamic TextView
- 17. Dynamic Mod_Rewrite
- 18. Dynamic galleryview
- 19. Dynamic MemberExpression
- 20. Dynamic ModelViews
- 21. Dynamic UIActionSheet'otherButtonTitles:'
- 22. Dynamic C++
- 23. Preg_replace dynamic
- 24. dynamic validates_length_of
- 25. PHP中的Dynamic Optgroup
- 26. SKPhysicsBody的.dynamic屬性
- 27. WCF中的Dynamic ExpandoObject
- 28. Identityserver3中的Dynamic RedirectUri
- 29. DrRacket中的dynamic-require
- 30. Android上的Dynamic PackageName
查看https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/ocrtPropertyIntrospection.html – iDev