2011-01-14 11 views
11

मैं कोर डेटा के लिए इस एक्सकोड टेम्पलेट का उपयोग कर रहा हूँ।आईफोन - coredata आवेदन निर्देशिका

प्रतिनिधि पर, मैं इस विधि है:

- (NSURL *)applicationDocumentsDirectory { 
    return [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]; 
} 

लेकिन यह iOS4 की आवश्यकता है।

मैं ऐप को 3.0 के साथ संगत बनाने की कोशिश कर रहा हूं।

तो, मैं करने के लिए इस विधि परिवर्तित कर दिया है:

- (NSURL *)applicationDocumentsDirectory { 

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; 
    return [NSURL URLWithString:documentsDirectory]; 

} 

लेकिन जब CoreData पर

NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"MyFile.sqlite"]; 
    if (![persistentStoreCoordinator_ addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error]) { 

यह संदेश के साथ यदि लाइन पर दुर्घटनाओं की दुकान URL का उपयोग करने की कोशिश करता है:

कोरडाटा एसक्यूएल केवल फाइल यूआरएल का समर्थन करता है (मिला /var/mobile/Applications/BB312A7E-6AE1-4BA2-AD87-6B96D8855CC6/Documents/MyFile.sqlite)। '

लेकिन StoreURL एक NSURL है!

कोई सुराग? धन्यवाद

उत्तर

24

करने का प्रयास करें:

NSString *pathToYourSqliteFile = @"/your/path/here"; 
NSURL *storeURL = [NSURL fileURLWithPath: isDirectory:NO]; 

देखें कि अगर काम कर देता है।

+0

धन्यवाद पर ठीक काम करता है! आप आदमी हो!!!! – SpaceDog

+0

मेरे ऐप्स परिनियोजन लक्ष्य 8.0 है और यह इसके लिए काम करता है! धन्यवाद! –

0

स्विफ्ट 3

let documentsUrl = FileManager.default.urls(for: .documentDirectory, in:.userDomainMask).first! 
संबंधित मुद्दे