2016-05-15 18 views
0

レルムカスタムデータベースに挿入データを使用する場合は、プロンプトレルムカスタムデータベースの挿入データ警告許可がキャッチされない例外により「RLMException」、理由にアプリを終了

を拒否:「XX:アクセス許可が拒否されました」

をが、データが挿入されました。

マイコード:

RLMRealm *realm = [RLMRealm realmWithURL:[self dataBasePath:kRealmCustomDBName]]; 
realm.configuration.readOnly = NO; 
NSLog(@"path = %@",realm.configuration.fileURL); 
WEAKSELF 
[realm transactionWithBlock:^{ 
    NSDictionary *dic = @{ 
          kRealmPrimaryKey:[weakSelf ret64bitString], 
          kRealmAvatarData:hiSchool.avatar, 
          kRealmTitle:hiSchool.title, 
          kRealmSubtitle:hiSchool.subTitle, 
          kRealmAge:hiSchool.age, 
          kRealmDate:hiSchool.date, 
          kRealmMale:hiSchool.isMale, 
          kRealmWeight:hiSchool.weight, 
          kRealmHeight:hiSchool.height 
          }; 
    [HiSchool createInRealm:realm withValue:dic]; 
}]; 

答えて

0

まず、(場合、これは問題を引き起こしている可能性があります)、それは本当にすでにRLMRealmインスタンスに割り当てられていますRLMRealmConfigurationオブジェクトのプロパティを変更することをお勧めではありません。この場合、すべての設定は[RLMRealm realmWithURL:]の内部で実行されていたため、実際には不安定になる可能性があります。いずれにしても、コードに設定する前にreadOnlyがYESに設定されていないと、ここで問題が発生していないはずです。

あなたが考えている唯一の他のものは、お客様のfileURLが不正な形式である可能性があります。ファイルパスに不正な文字が含まれているため、Realm Java instance where a similar error message occurredがありました。

RLMRealmインスタンスの作成をクリーンアップすることをおすすめします。新しいRLMRealmConfigurationインスタンスを作成し、そのインスタンスにfileURL(必要な場合)を設定し、そこにreadOnlyのプロパティを設定し、[RLMRealm realmWithConfiguration:error:]を使用してRLMRealmインスタンスを作成します。また、fileURLの値が適切なファイルURL([NSURL fileURLWithString:]で作成)であることを確認し、アプリが書き込みアクセス権を持つディレクトリを指していることを確認してください。

幸運を祈る!

関連する問題