Skip to content

Commit

Permalink
configure Realm DB
Browse files Browse the repository at this point in the history
  • Loading branch information
Macostik committed Jan 22, 2020
1 parent 451d81e commit 488533a
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 19 deletions.
16 changes: 8 additions & 8 deletions FisherMan.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -680,18 +680,18 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = FisherMan/FisherManDEV.entitlements;
CODE_SIGN_IDENTITY = "iPhone Developer";
CODE_SIGN_IDENTITY = "iPhone Developer: Yuriy Granchenko (DQHTWY74L6)";
CODE_SIGN_STYLE = Manual;
DEVELOPMENT_TEAM = 6UZ9CJ983B;
DEVELOPMENT_TEAM = 224SJKKLQ3;
ENV = DEV;
INFOPLIST_FILE = FisherMan/Resources/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = work.TestPushCounterBitBonSpace;
PRODUCT_BUNDLE_IDENTIFIER = com.GYS.FisherMan;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = TeshPushCounterBitBonSpace_Develop_Provisioning;
PROVISIONING_PROFILE_SPECIFIER = "XC iOS: *";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = 1;
Expand All @@ -704,18 +704,18 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_IDENTITY = "iPhone Developer";
CODE_SIGN_IDENTITY = "iPhone Distribution";
CODE_SIGN_STYLE = Manual;
DEVELOPMENT_TEAM = 6UZ9CJ983B;
DEVELOPMENT_TEAM = 224SJKKLQ3;
ENV = STG;
INFOPLIST_FILE = FisherMan/Resources/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = work.TestPushCounterBitBonSpace;
PRODUCT_BUNDLE_IDENTIFIER = com.GYS.FisherMan;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = TeshPushCounterBitBonSpace_Develop_Provisioning;
PROVISIONING_PROFILE_SPECIFIER = "XC iOS: *";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = 1;
};
Expand Down
3 changes: 2 additions & 1 deletion FisherMan/AppDelegate.swift
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication,
didFinishLaunchingWithOptions
launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
RealmProvider.configureRealm()
let realm = RealmProvider.shared.realm
print (">>self - \(realm.configuration.fileURL)<<")
return true
}

Expand Down
20 changes: 10 additions & 10 deletions FisherMan/Services/RealmService.swift
Original file line number Diff line number Diff line change
Expand Up @@ -33,13 +33,11 @@ public class RealmService<C>: RealmServiceType {
}

struct RealmProvider {
let configuration: Realm.Configuration
private let configuration: Realm.Configuration

internal init(config: Realm.Configuration) {
configuration = config
}
internal init(config: Realm.Configuration) { configuration = config }

var realm: Realm {
public var realm: Realm {
do {
return try Realm(configuration: configuration)
} catch {
Expand All @@ -48,9 +46,10 @@ struct RealmProvider {
}
}

@discardableResult static func configureRealm() -> Realm.Configuration {
private static func configureRealm() -> Realm.Configuration {
var config = Realm.Configuration.defaultConfiguration
var groupURL = config.fileURL
var groupURL = config.fileURL?
.deletingLastPathComponent().appendingPathComponent("\(Environment.ENV).realm")
do {
groupURL = try Path.inSharedContainer("\(Environment.ENV).realm")
} catch {
Expand All @@ -70,6 +69,8 @@ struct RealmProvider {
}
return config
}

public static var shared = RealmProvider(config: configureRealm())
}

protocol EntryCollection {
Expand Down Expand Up @@ -99,13 +100,12 @@ extension Realm {
failBlock: @escaping ((_ error: Swift.Error) -> Void) = {_ in return },
successBlock: @escaping ((Realm, T?) -> Void)) {
let wrappedObj = ThreadSafeReference(to: obj)
let config = RealmProvider.configureRealm()
let provider = RealmProvider.shared
DispatchQueue(label: "background").async {
autoreleasepool {
do {
let realm = try Realm(configuration: config)
let realm = provider.realm
let obj = realm.resolve(wrappedObj)

try realm.write {
successBlock(realm, obj)
}
Expand Down

0 comments on commit 488533a

Please sign in to comment.