2014-08-31 24 views
16

उद्देश्य सी जब भी मैं परीक्षण बंडल का उपयोग करने के लिए किया था मैं कहेंगेस्विफ्ट - परीक्षण लक्ष्य के लिए एनएसबंडल प्राप्त करें?

[NSBundle bundleForClass:[ClassInTestTarget class]]; 

bundleForClass स्विफ्ट में उपलब्ध नहीं है, तो मैं कैसे परीक्षण बंडल उपयोग करते हैं?

मुझे इसकी आवश्यकता है कि एक फ्रेमवर्क के लिए परीक्षण लिखने के लिए मैं काम कर रहा हूं, मुझे मेमोरी कोर डेटा स्टैक में उपयोग करना है। प्रारंभ में सभी संसाधनों दोनों मुख्य लक्ष्य और परीक्षण लक्ष्य में शामिल किया गया है, लेकिन फिर मैं इन सब परीक्षण सहायकों केवल लक्ष्य का परीक्षण करने के लिए ले जाया गया है, और अब नीचे कोड लौटा रहा है जो नहीं के बराबर मेरे सारे परीक्षण

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

उत्तर

41

इसी स्विफ्ट कोड में विफल रहता है

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

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

ClassInTestTarget.self "ClassInTestTarget" वर्ग के लिए बदले वर्ग वस्तु है।

+0

यह काम करता है: http://stackoverflow.com/questions/24403718/swift-equivalent-objective-c-runtime-class –

+0

मेरे पास यह कुछ कक्षाओं में काम कर रहा है, लेकिन अन्य में यह '/ अनुप्रयोग/एक्सकोड के साथ बंडल देता है .app/सामग्री/डेवलपर/usr/bin' पथ। कोई विचार क्यों इसे ठीक/कैसे ठीक करें? –

+0

विशेष रूप से - सामान्य वर्गों के साथ ही होता है ... –

संबंधित मुद्दे