Ios 如何为iPad/iPhone模拟器定义不同的数据库路径?

Ios 如何为iPad/iPhone模拟器定义不同的数据库路径?,ios,Ios,这是我定义本地sql数据库路径的方式。 然而,我注意到iPhone和iPad模式下的模拟器共享同一个数据库 - (NSString *)recordArchivePath { NSArray *documentDirectories = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentDirectory = [documentDir

这是我定义本地sql数据库路径的方式。 然而,我注意到iPhone和iPad模式下的模拟器共享同一个数据库

- (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"];
}