我有一個模型有兩個對象:SFCHChat
和SFCHMessages
它們有一對多的關係。RLMArray到RLMLinkingObjects遷移
由於從境界0.98到2.0的升級我現在得到以下異常生產:
Migration is required due to the following errors: - Property 'SFCHChat.chatId' has been made optional. - Property 'SFCHChat.lastReadedMessageId' has been made optional. - Property 'SFCHMessage.chat' has been added. - Property 'SFCHMessage.messageId' has been made optional. - Property 'SFCHMessage.chatId' has been made optional. - Property 'SFCHMessage.userId' has been made optional. - Property 'SFCHMessage.message' has been made optional. - Property 'SFCHUser.initials' has been made optional. - Property 'SFCHUser.userId' has been made optional. - Property 'SFCHChat.messages' has been removed.
所以,我已經添加自選至+ (NSArray *)requiredProperties
,但目前還不清楚如何去SFCHChat.messages
和SFCHMessage.chat
。下面是這些對象的代碼的diff:
### SFCHMessage.h
[email protected] (readonly) SFCHChat *chat;
[email protected] SFCHChat *chat;
### SFCHMessage.m
-- (SFCHChat *)chat
-{
- return [[self linkingObjectsOfClass:@"SFCHChat" forProperty:@"messages"] firstObject];
-}
-
### SFCHChat.h
[email protected] RLMArray<SFCHMessage> *messages;
[email protected] (readonly) RLMLinkingObjects *messages;
### SFCHChat.m
++ (NSDictionary *)linkingObjectsProperties {
+ return @{
+ @"messages": [RLMPropertyDescriptor descriptorWithClass:SFCHMessage.class propertyName:@"chat"],
+ };
+}
+
總結我遷移上境界對象到一個RLMLinkingObjects
屬性,如linkingObjectsOfClass
被廢棄的陣列。因此,不是將SFCHMessage
對象添加到SFCHChat.messages
RLMArray我添加chat
屬性到每個SFCHMessage
,並從它們與RLMLinkingObjects
鏈接回來。
它看起來像更改爲(readonly)
被視爲刪除領域中的屬性,而刪除它被視爲添加屬性。我是否真的需要一個移植塊來處理我的情況?我將如何執行此遷移?