我想聲明不帶ivar的@property。如果我用strong,weak或assign聲明@property,有什麼區別嗎?如果@property沒有ivar,strong,weak和assign之間有什麼區別?
2
A
回答
2
@property
聲明定義與財產的用戶的合同。例如,如果聲明爲weak
,那麼屬性的用戶知道傳遞的對象不會被保留。
無論該財產是否由伊娃支持,本合同應該是真實的。
對於您的情況,該屬性應該是strong
,weak
或assign
,具體取決於您的財產執行情況以及您希望爲該財產提供的合同。
0
這取決於屬性是什麼類型。例如,對於像NSInteger這樣的基本類型,您不能使用strong
或weak
屬性聲明屬性。 Xcode會告訴你一個錯誤。 因此,這些聲明是無效的:
@property (nonatomic, strong) NSInteger max;
@property (nonatomic, weak) NSInteger max;
@property (nonatomic, copy) NSInteger max;
因爲strong
,weak
和copy
的對象類型和NSInteger
的屬性沒有對象類型。這是原始類型。因此,下面的聲明是有效的:
@property (nonatomic, assign) NSInteger max;
屬性assign
,weak
,strong
,copy
和unsafe_unretained
指定由物業支持伊娃的內存管理規則。所以如果你不打算爲屬性創建ivar(假設你想提供你自己的getter/setter並且屬性不會存儲任何值),那麼你將指定什麼屬性並不重要。但正如我上面提到的,你不能爲原始類型指定對象類型的屬性。
相關問題
- 1. @property(nonatomic)ivar @property(nonatomic,assign)ivar是否相同或不同?
- 2. SPListItem [「property」]和SPListItem.Properties [「property」]之間的區別是什麼?
- 3. @property和@synthesize有什麼區別?
- 4. Private Dim和Private Property有什麼區別?
- 5. Socket和Transport之間有什麼區別,如果有一個
- 6. Xcode 3.2中的@property(nonatomic,retain)和Xcode 4.2中的@property(strong,nonatomic)之間的區別
- 7. 「vector :: operator =」和「vector :: assign」之間的區別是什麼?
- 8. 「層」和「層」之間有什麼區別?
- 9. Tableau和QlikView之間有什麼區別
- 10. Microsoft.CompilerServices.AsyncTargetingPack和Microsoft.Bcl.Async之間有什麼區別?
- 11. @Entity和@embeddable之間有什麼區別
- 12. ContentObservable和DataSetObservable之間有什麼區別?
- 13. touchmove和gesturechange之間有什麼區別?
- 14. :notification.flags和notification.defaults之間有什麼區別?
- 15. proc和lambda之間有什麼區別?
- 16. :: after和after之間有什麼區別?
- 17. read()和io.read()之間有什麼區別?
- 18. Request()和Request.Form()之間有什麼區別?
- 19. WebServiceBinding.EmitConformanceClaims和WebServiceBinding.ConformanceClaims之間有什麼區別?
- 20. getA()和this.getA()之間有什麼區別?
- 21. (int)和intval()之間有什麼區別?
- 22. set_value和= pandas之間有什麼區別
- 23. * zoom和zoom之間有什麼區別?
- 24. {0}和「」之間有什麼區別?
- 25. typedef和using之間有什麼區別?
- 26. 「」和「'之間有什麼區別?
- 27. STDIN和tty之間有什麼區別?
- 28. +和%之間有什麼區別?
- 29. sysfs_create_file()和sysfs_create_group()之間有什麼區別?
- 30. Lazy.Force()和Lazy.Value之間有什麼區別
呃...你讀過關於封裝的文檔嗎?我們來:https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/EncapsulatingData/EncapsulatingData.html – holex
我投票結束這個問題作爲題外話,因爲它似乎OP有顯示零利益,以閱讀立即回答他們的問題的基本文件。 – holex
我重新打開了這個問題,因爲它是由於錯誤的原因而關閉的。 OP沒有問強弱之間有什麼區別。 OP在詢問物業是否由伊娃支持時是強還是弱。 – rmaddy