2014-08-31 7 views
16

çağırır, böylece nasıl bir test paket erişebilirim?Swift - Test hedefi için NSBundle'ı alın? Ben</p> <pre><code>[NSBundle bundleForClass:[ClassInTestTarget class]]; </code></pre> <p><code>bundleForClass</code> Swift kullanılamaz ben testi paket erişmek zorunda zaman Objective C olarak

Buna ihtiyacımın nedeni, üzerinde çalıştığım bir çerçeve için test yazmak için bellek çekirdek veri yığınında kullanmam gerektiğidir. Başlangıçta tüm kaynakların hem ana hedef ve test hedefinin dahil edildi, ama sonra bütün bu deney yardımcıları yalnızca hedef test etmek taşındı ve şimdi aşağıda kod dönen hangi nil tüm testleri

let modelURL = NSBundle.mainBundle().URLForResource("Model", withExtension: "momd") 

cevap

41

gelen Swift kodu başarısız "ClassInTestTarget" sınıf için

// Swift 3 and later: 
Bundle(for: ClassInTestTarget.self) 

// Swift 1, 2: 
NSBundle(forClass: ClassInTestTarget.self) 

ClassInTestTarget.self dönüş sınıf nesnesi olduğunu.

+0

Bu işlevler: http://stackoverflow.com/questions/24403718/swift-equivalent-objective-c-runtime-class –

+0

Bazı sınıflarda çalışıyorum ancak diğerlerinde '/ Applications/Xcode ile birlikte paket döndürüyor .app/İçerik/Geliştirici/usr/bin' yolu. Herhangi bir fikrin neden/nasıl düzeltileceği? –

+0

Özellikle - yalnızca genel sınıflarla gerçekleşir… –

İlgili konular