Objective C 2.0'da özelliklerin ne zaman kullanılacağını anlamakta sorun yaşıyorum. Int, bool, float gibi bir ilkel tür için bir özellik gerekmez gibi görünüyor. Bu doğru mu? Bu türlerin özelliklerini gösteren örnekler ve onları dışarıda bırakan başka örnekler gördüm. Örneğin, Apple'ın örnek kodda sahip oldukları:İlkel türler için özelliklerin kullanımı
...
@interface Book : NSObject {
// Primary key in the database.
NSInteger primaryKey;
// Attributes.
NSString *title;
NSDate *copyright;
NSString *author;
BOOL hydrated;
BOOL dirty;
NSData *data;
}
@property (assign, nonatomic, readonly) NSInteger primaryKey;
// The remaining attributes are copied rather than retained because they are value objects.
@property (copy, nonatomic) NSString *title;
@property (copy, nonatomic) NSDate *copyright;
@property (copy, nonatomic) NSString *author;
...
Apple SQLite Book List Sample Code
Yani onların BOOL için bir mülk kullanmayın görebilirsiniz, ama onlar uygulama dosyası boyunca bir örnek değişkeni vardır tedavi olarak, değeri okumak ve değeri ayarlamak. Çevrimiçi arama Şu türler için şu özellikleri kullanan öğreticiler buldum: (@property BOOL flag). Birisi benim için bu konuda biraz ışık tutabilir mi? Teşekkürler.
Teşekkürler Marc.Yeah, hemen hemen her şey için mülk kullanıyordum ve sadece sınıflarımda ovuyordum ve doğru olduğundan emin oldum. Bağlantıyı, söz konusu soruya atıfta bulunduğum Apple örnek koduna ekledim. Ama doğrudan erişiyor gibi görünüyorlar (self.dirty'den geçmiyor) – Sean
Evet İhtiyacım yok ise ilkellere yönelik özelliklere ihtiyacım yok. Sınıfınızın dışına erişmeniz gerekiyorsa, bir mülke ihtiyacınız var. – mk12
Özellikler için başka bir kullanım bellek yönetimini basitleştirmektir. Dürüst olmak gerekirse, [ivar1 sürümü] yerine self.ivar1 = nil'e sahip olabilirsiniz; ivar1 = sıfır; Bir değişiklik değil, ama hala bellek yönetimi boilerplate kodunu basitleştiren iyi bir alışkanlık. İlkellerin buna ihtiyacı yok, ama yorumunuzdan sonra özelliklerin nerede yararlı olduğunu açıklayabileceğimi düşündüm. – Luke