Objective-C Çalışma Zamanı Modunu kullanarak, +layerClass
yöntemini özel UIGroupTableViewCellBackground
sınıfına nasıl ekleyebilirim (süper sınıf, UIView
)? Not: Bu yalnızca test için (hücresinin backgroundView
& selectedBackgroundView
ayarlarını nasıl yaptığını görmek içindir).Dinamik olarak bir sınıf yöntemi nasıl eklenir?
cevap
Bir sınıf yöntemi yerine, bir örnek yöntemi yerine, meta sınıfı almak için object_getClass(cls)
kullanın ve sonra yöntemi meta sınıfına ekleyin. Örn .:
UIKIT_STATIC_INLINE Class my_layerClass(id self, SEL _cmd) {
return [MyLayer class];
}
+ (void)initialize {
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
Class class = object_getClass(NSClassFromString(@"UIGroupTableViewCellBackground"));
NSAssert(class_addMethod(class, @selector(layerClass), (IMP)my_layerClass, "@:@"), nil);
});
}
Ayrıca bu derlemeye almak için, yani @class UIGroupTableViewCellBackground
UIGroupTableViewCellBackground
bir kategoriye +layerClass
yöntemi ekleme ve bir ileri sınıf tanımını kullanarak bu daha kolay yapmak mümkün olabilir. Kendine
+ (void)load {
class_addMethod(objc_getMetaClass("UIGroupTableViewCellBackground"),
@selector(layerClass), (IMP)my_layerClass, "@:@"), nil);
});
}
Ayrıca #include
bu sihri deneyin
? S/A? 5 dakika sonra kendiniz tarafından gönderilen cevap?", nil" yanlıştır, bir iddiadan. –
- 1. Dinamik bir nesnede bir yöntemi dinamik olarak nasıl çağırabilirim?
- 2. Dart'ta dinamik sınıf yöntemi çağırma
- 3. Dinamik olarak bir yönerge nasıl eklenir?
- 4. Ruby'de örnek yöntemi dinamik olarak nasıl tanımlanır?
- 5. Veriler dinamik olarak MySQL'e nasıl eklenir
- 6. Android'de LinearLayout dinamik olarak nasıl eklenir?
- 7. Her Sınıf Yöntemi yürütme öncesinde belirli bir yöntemi nasıl çağırır?
- 8. Matlabda dinamik olarak sınıf oluşturma
- 9. Nesnel-C'de sınıf dinamik olarak nasıl yüklenir?
- 10. Python'da sınıf özelliklerine dinamik olarak nasıl erişilir?
- 11. Sınıf isimleri dinamik olarak nasıl ayarlanır?
- 12. Html etiketine nasıl sınıf eklenir?
- 13. Haml: Bir öğeye dinamik olarak sınıflar nasıl eklenir?
- 14. Java'da belirli bir dizine dinamik olarak metin dosyaları nasıl eklenir?
- 15. Başka bir görünüm altında dinamik düğme nasıl eklenir? android olarak
- 16. Javascript'te bir div'e dinamik olarak bağlantı etiketleri nasıl eklenir?
- 17. Sınıf tabloları nasıl eklenir
- 18. Swift: 'Dize bir sınıf yöntemi nasıl eklenir 'Ben uzantısı içine sınıf işlev eklemek istediğiniz uzantının
- 19. Dinamik bir sınıf oluşturma
- 20. Dinamik türden bir uzantı yöntemi nasıl aranır?
- 21. dinamik nasıl eklenir/aşağıdaki gibi
- 22. .NET'te bir sınıf yöntemini dinamik olarak nasıl çağırırız?
- 23. Bir Swift sınıf adını dinamik olarak nasıl sıralayabilirim?
- 24. Scala: Bir sınıf özelliğine dinamik olarak ada göre nasıl erişilir?
- 25. Mongoose'da şema yöntemi nasıl eklenir?
- 26. Statik bir sınıfa sahip bir görünüme dinamik bir sınıf ekleyin
- 27. Jilet sözdizimini kullanarak dinamik olarak html öğesine nasıl sınıf eklenir? Örneğin
- 28. Dinamik sınıf değişkenleri
- 29. React.js ile bir sınıf nasıl eklenir?
- 30. Symfony Bundle'da özel bir sınıf nasıl eklenir?
alıyor: – samfisher
@samfisher: Bu, yapılması gereken tamamen meşru bir şey: http://meta.stackexchange.com/q/2706/ Matt sadece bilgi deposuna ekliyor. –
teşekkürler @JoshCaswell bu konuda aydınlatmak için .. !! – samfisher