Realm v4.0.0 Release Notes

Release Date: 2019-11-08 // over 4 years ago
  • ๐Ÿ’ฅ Breaking Changes

    • ๐Ÿšš All previously deprecated functionality has now been removed entirely.
    • The schema discovery logic for RealmSwift.Object subclasses has been rewritten in Swift. This should not have any effect on valid class definitions, but there may be types of invalid definitions which previously worked by coincidence and no longer do.
    • ๐Ÿ”€ SyncSubscription no longer has a generic type parameter, as the type was not actually used for anything.
    • The following Swift types have changed from final class to struct:
      • AnyRealmCollection
      • LinkingObjects
      • ObjectiveCSupport
      • Realm
      • Results
      • SyncSubscription
      • ThreadSafeReference There is no intended change in semantics from this, but certain edge cases may behave differently.
    • The designated initializers defined by RLMObject and Object other than zero-argument init have been replaced with convenience initializers.
    • The implementation of the path-based permissions API has been redesigned to accomodate changes to the server. This should be mostly a transparent change, with two main exceptions:
      1. SyncPermission objects are no longer live Realm objects, and retrieving permissions gives an Array rather than Results. Getting up-to-date permissions now requires calling retrievePermissions() again rather than observing the permissions.
      2. The error codes for permissions functions have changed. Rather than a separate error type and set of error codes, permission functions now produce SyncAuthErrors.

    โœจ Enhancements

    • ๐Ÿ‘Œ Improve performance of initializing Realm objects with List properties.

    ๐Ÿ›  Fixed

    • None.

    Compatibility

    • โฌ†๏ธ File format: Generates Realms with format v9 (Reads and upgrades all previous formats)
    • Realm Object Server: 3.21.0 or later.
    • ๐Ÿš€ Carthage release for Swift is built with Xcode 11.2.