Правило большого пальца для Царства - это только одна транзакция записи, открытая на RLMRealm
в любой момент времени. Возможно, вам придется пересмотреть свою логику, если вы нажмете эту ошибку. Вы никогда не должны преднамеренно пытаться открыть вторую транзакцию записи на RLMRealm
, которая уже открыта в том же потоке. Выполнение этого в отдельных потоках прекрасное, но поток, второй транзакции записи, будет заблокирован до завершения первого.
Если что-то в вашей реализации не установлено правильно, также возможно, что транзакция, которую вы предположили, завершила, возможно, имела ошибку и осталась открытой. Как сказал Себастьян, вы можете проверить это с помощью -[RLMRealm inWriteTransaction]
, но в этом случае вам обязательно нужно отменить свой код, чтобы узнать, почему это происходит.