2011-05-28 27 views
15

Örneğini Değişken Kategoriden bir örnek değişkeni eklemenin mümkün olup olmadığını soruyorum. Benim özel sorunum, bir ASIHTTPRequest nesnesine bir NSIndexPath özelliği eklemem gerekiyor, ancak ASIHTTPRequest'i bir ilke olarak alt sınıflara ayırmak istemiyorum.Objective-C: Kategori

Herhangi bir alternatifim var mı? Cevaplar için

sayesinde

+0

[Objective-C: Property in Category] 'nin olası kopyası (http://stackoverflow.com/questions/8733104/objective-c-property-in-category) – hfossli

cevap

19

Hıristiyan bir kategori ek örnek değişkenleri bildirmek olamaz ama OS X 10.6 ve iOS 3.1 beri associative references ile bu çalışabilirsiniz.

Var olan bir sınıfa nesne örneği değişkenlerinin eklenmesini simüle etmek için ilişkisel başvurular kullanabilirsiniz. İlişkilendirilmiş başvurular kullanarak, sınıf beyanını değiştirmeden bir nesneye depolama ekleyebilirsiniz. Bu, objc_setAssociatedObject ve objc_getAssociatedObject aracılığıyla yapılır. Bu çağrıları bir mülkün özel alıcısı ve ayarlayıcısına sardıysanız, bir ivar taklit edebilirsiniz.

Ole Begemann numaralı telefondan bu post'a bakın.

+0

Teşekkürler, ancak daha kolay bir çözüm buldum: userInfo- ASIHTTPRequest Sözlük! Ama neyse, teşekkürler! – cschwarz

+1

Çözdüğün için mutluyum! Soruyu kendiniz çözümünüzle yanıtlamak ve kabul etmek ya da diğer cevaplardan birini kabul etmek isteyebilirsiniz, böylece soru kabul edilmeyecek şekilde kalmayacaktır. – albertamg

+1

Aslında ivar'ları bir sınıf uzantısına eklemek artık mümkün. Bakınız: http://stackoverflow.com/questions/5826345/how-to-declare-instance-variables-and-methods-not-visible-or-usable-outside-of-th/5826453#5826453 –

İlgili konular