Ios 如何为iPad/iPhone模拟器定义不同的数据库路径?
这是我定义本地sql数据库路径的方式。 然而,我注意到iPhone和iPad模式下的模拟器共享同一个数据库Ios 如何为iPad/iPhone模拟器定义不同的数据库路径?,ios,Ios,这是我定义本地sql数据库路径的方式。 然而,我注意到iPhone和iPad模式下的模拟器共享同一个数据库 - (NSString *)recordArchivePath { NSArray *documentDirectories = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentDirectory = [documentDir
- (NSString *)recordArchivePath
{
NSArray *documentDirectories = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentDirectory = [documentDirectories objectAtIndex:0];
return [documentDirectory stringByAppendingPathComponent:@"store.data"];
}
NSPersistentStoreCoordinator *psc = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:model];
NSString *path = [self recordArchivePath];
NSURL *storeURL = [NSURL fileURLWithPath:path];
NSError *error = nil;
NSDictionary *options = @{
NSMigratePersistentStoresAutomaticallyOption : @YES,
NSInferMappingModelAutomaticallyOption : @YES
};
sqliteStore = [psc addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:&error];
对于每种模式,我需要做什么?有一个不同的数据库
我尝试过这种方法,但也失败了:
#if TARGET_OS_IPHONE
return [documentDirectory stringByAppendingPathComponent:@"store.data"];
#else
return [documentDirectory stringByAppendingPathComponent:@"store-ipad.data"];
#endif
请尝试以下操作:
#define IS_IPAD UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad
然后你可以用
if (IS_IPAD) {
return [documentDirectory stringByAppendingPathComponent:@"store-ipad.data"];
} else {
return [documentDirectory stringByAppendingPathComponent:@"store.data"];
}