하나의 응용 프로그램에 두 개의 영역 파일이 있습니다.이 파일을 마이그레이션 할 때 잘못되었습니다. 나는 스키마 버전을 매번 변경하지 않으면 서 Xcode에서 자동으로 영역 업데이트를 원합니다.하나의 응용 프로그램에서 여러 영역 파일을 마이그레이션하는 방법
class News: Object {
@objc dynamic var name: String
}
class NewsManager {
static var realm = try! Realm()
static var cacheRealm: Realm = {
let documentDirectory = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask,
appropriateFor: nil, create: false)
let url = documentDirectory.appendingPathComponent("cache.realm")
var config = Realm.Configuration()
config.fileURL = url
return try! Realm(configuration: config)
}()
}
나는 뉴스 같은 같은 @objc 동적 VAR 제목에 새 속성을 추가 할 때 : 문자열, I 추가 AppDelegate에 FUNC 응용 프로그램 (_ 응용 프로그램에 다음 코드 : UIApplication, didFinishLaunchingWithOptions의 launchOptions : UIApplicationLaunchOptionsKey : 모든 = 무기 호) -> BOOL
let config = Realm.Configuration(schemaVersion: 1, migrationBlock: { migration, oldSchemaVersion in
})
Realm.Configuration.defaultConfiguration = config
복귀 시도에서 충돌의 메시지?! 영역 (구성 : 구성) in NewsManager.
Fatal error: 'try!' expression unexpectedly raised an error: Error Domain=io.realm Code=10 "Migration is required due to the following errors:
- Property 'News.test' has been added." UserInfo={Error Code=10, NSLocalizedDescription=Migration is required due to the following errors:
- Property 'News.test' has been added.}: file /BuildRoot/Library/Caches/com.apple.xbs/Sources/swiftlang/swiftlang-900.0.69.2/src/swift/stdlib/public/core/ErrorType.swift, line 181
어떻게해야합니까?
영역 : 3.0.1
스위프트 : 4.0
아이폰 OS : 예상대로 10
** @ objc 동적 var title : 문자열? ** 및 ** @ objc 동적 var title : String = ""**, 또한 충돌합니다. ** cache.realm **. 그래서 새로운 속성을 추가 한 후에 Xcode를 실행할 때 schemaVersion을 늘려야합니까? –
새로운 비 선택적 속성 추가와 같이 마이그레이션 블록이 필요한 변경을 수행하는 경우 'schemaVersion'을 늘려야합니다. – AustinZ