2014-09-25 1 views
2

에 충돌 :영역의 realmWithPath 방법 내가 전화 아이폰 OS

[RLMRealm realmWithPath:@"example.realm"] 

그것은 충돌 및 로그 :

응용 프로그램을 종료로 인해, 이유 캐치되지 않는 예외 'RLMException'에 '오픈() 실패 : 작업이 허용되지 않습니다 '

default.realm 및 [RLMRealm defaultRealm]을 사용하는 것 외에 특정 영역 파일을 만드는 방법은 무엇입니까? 문서에서 뭔가를 놓치고 있습니까?

+0

안녕하세요 Tim에서 여기 있습니다. 미안합니다! 이 버그가 아직보고 된 적이 없다고 생각합니다. 좀 더 자세한 정보가 필요합니다 : 장치 또는 시뮬레이터에서 충돌하고 있습니까? 디스크 공간이 아직 남아 있습니까? – timanglade

+0

안녕하세요, Tim, 저를 도와 주셔서 고마워요! 내 장치 인 iPhone 6에서이를 테스트하고 있습니다. 사용 가능한 디스크 공간이 있습니다. 내 예제 응용 프로그램에서 [RLMRealm realmWithPath : @ "example.realm"]을 호출하려했지만 응용 프로그램이 중단됩니다. 그 오류는 내가 처음에 example.realm 파일을 작성해야만한다는 것을 의미한다고 생각했지만 realmWithPath가 자동으로 그렇게 할 것이라고 생각했습니다. ( m_group (그룹 :: shared_tag ​​()), 가 m_transactions_are_pinned : 나는 0.85.0을 사용하고 #ifdef와 TIGHTDB_ENABLE_REPLICATION 인라인 SharedGroup :: SharedGroup (복제 및 REPL은) 그것은 group_shared.hpp에서 휴식 CocoaPods – kevnguy

+0

false) { open (repl); } #endif – kevnguy

답변

7

당신은이 새로운 영역 파일을 만들 수있는 방법이다 옳다, 당신은 파일 시스템의 쓰기 가능한 위치의 전체 경로를 제공하는 경우, 그것은 작동합니다

NSString *documentsDirectory = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0]; 
NSString *customRealmPath = [documentsDirectory stringByAppendingPathComponent:@"example.realm"]; 
RLMRealm *realm = [RLMRealm realmWithPath:customRealmPath]; 

편집 :로 업데이트 장치에서 작동하는 경로뿐만 아니라

+0

고 스타 후 도움에 감사드립니다! 내 장치에서 내 애플 리케이션을 실행하는 동안이 시도하고 여전히 같은 오류와 충돌합니다. – kevnguy

+0

죄송합니다. 당신이 github에 도움을가는 것을 보았습니다,하지만 나는 미래의 참고를 위해 대답을 업데이트합니다. – Gusutafu

+0

이 답변은 정확합니다. 자세한 내용은 https://github.com/realm/realm-cocoa/issues/933을 참조하십시오. – jpsim

0

시뮬레이터는 번들 영역 파일을 사용하는 경우, 그것은 장치에 충돌합니다 내 대답 https://github.com/realm/realm-cocoa/issues/4221

참조하십시오. 읽기 전용을 지정해야합니다.

readOnly : 영역이 읽기 전용인지 여부 (읽기 전용 파일의 경우 true 여야 함).

let path = Bundle.main.url(forResource: "mydata", withExtension: "realm")! 
let configuration = Realm.Configuration(fileURL: path, readOnly: true) 
realm = try! Realm(configuration: configuration)