आप अपने प्रोजेक्ट-xcode में अपने डाटाबेस जोड़ने शुरू कर दिया है, तो यह आपके बंडल फ़ोल्डर में जोड़ा जाएगा, जहां आप इसे कोड के माध्यम से पा सकते हैं:
[NSBundle mainBundle]
यह एकमात्र फ़ोल्डर है जहां आप एक्सकोड के माध्यम से फाइलें जोड़ सकते हैं जब आप अपने ऐप को "बिल्ड" करते हैं (अंततः उपफोल्डर्स के साथ, लेकिन "सिस्टम" फ़ोल्डरों को "दस्तावेज़" के रूप में नहीं) अब आपको यह ध्यान रखना होगा कि मुख्य बंडल फ़ोल्डर बस है "केवल पढ़ने", ताकि आप लिखने के विशेषाधिकारों के साथ अपने डीबी का उपयोग नहीं कर सकें। तो सामान्य तरीका यह है:
1) जब आप अपने डीबी का उपयोग करना चाहते हैं, तो ऐप में मौजूद होने पर कोड के माध्यम से जांचें: दस्तावेज़ फ़ोल्डर। बेशक पहली बार ऐसा नहीं होता है के , तो
2) मुख्य बंडल
- (BOOL)transferDb {
NSError **error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"yourData.db"];
NSFileManager *fileManager = [NSFileManager defaultManager];
if (![fileManager fileExistsAtPath: path])
{
NSString *bundle = [[ NSBundle mainBundle] pathForResource:@"preferenze" ofType:@"plist"];
[fileManager copyItemAtPath:bundle toPath:path error:error];
return YES;
}
return NO;
}
3) यह (आर/डब्ल्यू) का उपयोग से इसे कॉपी में दस्तावेज़ फ़ोल्डर
पुनश्च: और (ज़ाहिर है) ध्यान रखें कि जब आप आईफोन/सिम्युलेटर में डीबी का उपयोग/संपादन/लिखते हैं, तो शायद रिकॉर्ड जोड़ना, मुख्य बंडल में से एक और निश्चित रूप से आपके मैक/प्रोजेक्ट में से एक अपडेट नहीं किया जाएगा, इसमें कोई रिकॉर्ड नहीं जोड़ा जाएगा, इसलिए अगर किसी भी कारण से आप आईफोन/सिम्युलेटर (या "एक्सकोड" बिल्ड "मेनू द्वारा" सभी लक्ष्यों को साफ करें) पर अपना ऐप हटा दें तो चेक/कॉपी विधि दस्तावेज़ फ़ोल्डर में "कुंवारी" डीबी की प्रतिलिपि बनाएँ, ताकि आप अपने सभी परिवर्तनों को खो देंगे ...
मैं सिर्फ कि क्या यह कोड SQLite फ़ाइलों का स्थान के रूप में आईओएस 8 और Yosemite के लिए मान्य अभी भी है के रूप में पूछताछ करने के लिए चाहते हैं बदल गया है –