Okuduklarımdan, bir nesneyi sınıf adından almanın iki yolu var gibi görünüyor. NSClassFromString()
ve NSBundle
'un classNamed:(NSString *)
arasındaki farklar nelerdir? Belirtilen adın çalışma zamanı ile kaydedilmiş bir sınıfı döndürür.NSClassFromString() vs classNamed: (NSString *)
6
A
cevap
5
. NSBundle'ın classNamed:
sınıfı, paketin içinde, henüz yüklenmemiş olabilen (yani, gerekirse paketi yükleyeceği anlamına gelir) sınıfı döndürür.
Farklı bir yol: Bir NSBundle muhtemelen uygulama çalışma zamanınızda yüklü olan tüm sınıfları bilmez (ancak ana paketiniz olsa, muhtemelen sınıflarınızın çoğunu bilir). Tersine, uygulamanızın çalışma zamanı, yüklenmeden önce bir paket içindeki tüm sınıfları bilmeyecektir.
İlgili konular
- 1. NSString üzerinde stringWithFormat vs. initWithFormat
- 2. NSString Vs statik sabit Vs tanımlamak - bakış Bellek noktası
- 3. NSString
- 4. NSString
- 5. NSString
- 6. NSString
- 7. NSString?
- 8. NSString
- 9. NSString
- 10. NSString
- 11. NSString, NSURL
- 12. NSString isEqualToString
- 13. NSString araması
- 14. NSString boundingRectWithSize
- 15. NSString stringWithFormat
- 16. NSString denklemi
- 17. nasıl NSString
- 18. NSDictionnary NSString
- 19. Neden OS X'de [@ "" class]! = NSClassFromString (NSStringFromClass ([@ "" class]))? iOS'ta
- 20. gibi bir nil-sonlandırılmış NSString listesini Oluşturma bir NSString *
- 21. NSSSL'ye NSString Eklemek?
- 22. NSString boyutuWithAttributes: content rect
- 23. NSArray nesnesinde NSString dönüştürme
- 24. NSString yüksekliğini edinin
- 25. Objective-C NSString Soru
- 26. nsstring ucolor nasıl dönüştürülecek?
- 27. Belirli karakterleri kaldırın NSString
- 28. NSString makrosu nasıl oluşturulur?
- 29. NSString int değerine değiştirin?
- 30. İstenmeyen bilgiler, NSString
'+ classNamed:' dosyasının kayıtlı ve yüklenmesine neden olacağından şüpheleniyorum. – bbum
@bbum: Evet, olacak. Aydınlatılmış. – Chuck
@bbum: 'classNamed:' bir sınıf yöntemi değil, bir örnek yöntemidir ('-classNamed:'). Bu da beni başka bir fark yaratıyor: classNamed: 'bir paketin gönderilmesi soruyor * sınıf için bu özel paket *. Eğer sınıf bu pakette değilse (başka bir grupta olduğu için ya da olmadığı için), “Nil” yi alırsınız. “NSClassFromString” hangi paketi sağladığından bağımsız olarak sınıfı döndürür. –