Realm 에러 모음
이 포스팅은 렘 관련 오류가 나면 원인과 해결법을 적어놓는 용으로 계속 업데이트하겠습니다.
1. requires a protocol defining the contained type - example: RLMArray<Person>
#import <Realm/Realm.h>
#import "Transaction.h"
@interface Account : RLMObject
@property NSString *primaryKey;
@property RLMArray<Transaction *>*transactions;
@end
위처럼 Account모델을 만들었습니다.
RLMArray 형으로 모델에 transactions 프로퍼티를 만들었는데 아래와 같은 오류 메시지가 나오면서 crash가 납니다.
*** Terminating app due to uncaught exception 'RLMException', reason: 'Property 'transactions' requires a protocol defining the contained type - example: RLMArray<Person>.'
Cannot find protocol declaration for ‘LoanTransaction’
아래처럼 Transaction에 대한 class, protocol을 선언해주면 해결됩니다.
#import <Realm/Realm.h>
@class Transaction;
@protocol Transaction;
@interface Account : RLMObject
@property NSString *primaryKey;
@property RLMArray<Transaction *><Transaction> *transactions;
@end
2. ***Terminating app due to uncaught exception 'RLMException', reason: 'Attempting to create an object of type 'ChildModel' with an existing primary key value 'key_0303'.'
주키가 설정되어있는 모델이 참조되는 RLMArray에 업데이트하기 전에 add(append)해서 생기는 문제였습니다.
해결 방안
[realm addOrUpdateObject:childModel];
[linkedModel.array addObject:childModel];
위처럼 업데이트를 먼저 해주면 됨
3. *** Terminating app due to uncaught exception 'RLMException', reason: ''LoanAccount' does not have a primary key and can not be updated'
주키(primaryKey)가 설정 안 되어있는데 update를 시행해서 발생한 crash입니다.
'IT > iOs' 카테고리의 다른 글
WKUserContentController 뽀개기 (0) | 2019.11.25 |
---|---|
로컬 노티피케이션 보내기 UNMutableNotificationContent (0) | 2019.11.21 |
프레임워크 지원하는 아키텍처 확인하는법 (0) | 2019.11.18 |
App Store Connect Operation Warning (0) | 2019.11.16 |
duplicate symbol for architecture arm64 error (0) | 2019.11.09 |