Отладчик не показывает правильные данные в окне наблюдения для управляемых объектов (то есть тех, которые получены из запросов Realm) - он покажет значения по умолчанию, которые вы назначаете объекту, как в первом разделе кода. Это связано с тем, как работают прокси-объекты Realm - как определено использованием @objc dynamic
в объявлении типа. Это всегда будет иметь место с управляемыми объектами.
Вы можете использовать команду print
для отображения фактических значений данных по полю, если хотите. В командном окне отладчика (с приглашением '(lldb)' справа от окна просмотра) введите: -
print levelLockState.isLock
(в случае вашего примера выше), и результат должен быть правильным,Это будет работать до тех пор, пока вы укажете поля значений, но попытка отобразить другой объект Realm с помощью этого метода снова вызовет ту же проблему (например, print levelLockState
даст вам нули и нули снова).
As @Джей определил в своих комментариях ниже, что отладчик будет показывать правильные значения только тогда, когда объект был создан локально (т.е. он не управляется).