Skip to content

Releases: realm/realm-swift

v1.1.0

16 Sep 23:12
Compare
Choose a tag to compare

This release brings official support for Xcode 8, Swift 2.3 and Swift 3.0.
Prebuilt frameworks are now built with Xcode 7.3.1 and Xcode 8.0.

API breaking changes

  • Deprecate migrateRealm: in favor of new performMigrationForConfiguration:error: method
    that follows Cocoa's NSError conventions.
  • Fix issue where RLMResults used idinstead of its generic type as the return
    type of subscript.

Enhancements

  • Improve error message when using NSNumber incorrectly in Swift models.
  • Further reduce the download size of the prebuilt static libraries.
  • Improve sort performance, especially on non-nullable columns.
  • Allow partial initialization of object by initWithValue:, deferring
    required property checks until object is added to Realm.

Bugfixes

  • Fix incorrect truncation of the constant value for queries of the form
    column < value for float and double columns.
  • Fix crash when an aggregate is accessed as an Int8, Int16, Int32, or Int64.
  • Fix a race condition that could lead to a crash if an RLMArray or List was
    deallocated on a different thread than it was created on.
  • Fix a crash when the last reference to an observed object is released from
    within the observation.
  • Fix a crash when initWithValue: is used to create a nested object for a class
    with an uninitialized schema.
  • Enforce uniqueness for RealmOptional primary keys when using the value setter.

v1.0.2

14 Jul 00:17
Compare
Choose a tag to compare

API breaking changes

  • Attempting to add an object with no properties to a Realm now throws rather than silently
    doing nothing.

Enhancements

  • Swift: A write block may now throw, reverting any changes already made in
    the transaction.
  • Reduce address space used when committing write transactions.
  • Significantly reduce the download size of prebuilt binaries and slightly
    reduce the final size contribution of Realm to applications.
  • Improve performance of accessing RLMArray properties and creating objects
    with List properties.

Bugfixes

  • Fix a crash when reading the shared schema from an observed Swift object.
  • Fix crashes or incorrect results when passing an array of values to
    createOrUpdate after reordering the class's properties.
  • Ensure that the initial call of a Results notification block is always passed
    .Initial even if there is a write transaction between when the notification
    is added and when the first notification is delivered.
  • Fix a crash when deleting all objects in a Realm while fast-enumerating query
    results from that Realm.
  • Handle EINTR from flock() rather than crashing.
  • Fix incorrect behavior following a call to [RLMRealm compact].
  • Fix live updating and notifications for Results created from a predicate involving
    an inverse relationship to be triggered when an object at the other end of the relationship
    is modified.

v1.0.1

12 Jun 18:31
Compare
Choose a tag to compare

API breaking changes

  • None.

Enhancements

  • Significantly improve performance of opening Realm files, and slightly
    improve performance of committing write transactions.

Bugfixes

  • Swift: Fix an error thrown when trying to create or update Object instances via
    add(:_update:) with a primary key property of type RealmOptional.
  • Xcode playground in Swift release zip now runs successfully.
  • The key parameter of Realm.objectForPrimaryKey(_:key:)/ Realm.dynamicObjectForPrimaryKey(_:key:)
    is now marked as optional.
  • Fix a potential memory leak when closing Realms after a Realm file has been
    opened on multiple threads which are running in active run loops.
  • Fix notifications breaking on tvOS after a very large number of write
    transactions have been committed.
  • Fix a "Destruction of mutex in use" assertion failure after an error while
    opening a file.
  • Realm now throws an exception if an Object subclass is defined with a managed Swift lazy property.
    Objects with ignored lazy properties should now work correctly.
  • Update the LLDB script to work with recent changes to the implementation of RLMResults.
  • Fix an assertion failure when a Realm file is deleted while it is still open,
    and then a new Realm is opened at the same path. Note that this is still not
    a supported scenario, and may break in other ways.

v1.0.0

25 May 12:22
Compare
Choose a tag to compare

No changes since 0.103.2.

v0.103.2

25 May 03:33
Compare
Choose a tag to compare

API breaking changes

  • None.

Enhancements

  • Improve the error messages when an I/O error occurs in writeCopyToURL.

Bugfixes

  • Fix an assertion failure which could occur when opening a Realm after opening
    that Realm failed previously in some specific ways in the same run of the
    application.
  • Reading optional integers, floats, and doubles from within a migration block
    now correctly returns nil rather than 0 when the stored value is nil.

v0.103.1

20 May 00:05
Compare
Choose a tag to compare

API breaking changes

  • None.

Enhancements

  • None.

Bugfixes

  • Fix a bug that sometimes resulted in a single object's NSData properties
    changing from nil to a zero-length non-nil NSData when a different object
    of the same type was deleted.

v0.103.0

18 May 22:42
Compare
Choose a tag to compare

API breaking changes

  • All functionality deprecated in previous releases has been removed entirely.
  • Support for Xcode 6.x & Swift prior to 2.2 has been completely removed.
  • RLMResults/Results now become empty when a RLMArray/List or object
    they depend on is deleted, rather than throwing an exception when accessed.
  • Migrations are no longer run when deleteRealmIfMigrationNeeded is set,
    recreating the file instead.

Enhancements

  • Added invalidated properties to RLMResults/Results, RLMLinkingObjects/LinkingObjects,
    RealmCollectionType and AnyRealmCollection. These properties report whether the Realm
    the object is associated with has been invalidated.
  • Some NSErrors created by Realm now have more descriptive user info payloads.

Bugfixes

  • None.

v0.102.1

13 May 23:56
Compare
Choose a tag to compare

API breaking changes

  • None.

Enhancements

  • Return RLMErrorSchemaMismatch error rather than the more generic RLMErrorFail
    when a migration is required.
  • Improve the performance of allocating instances of Object subclasses
    that have LinkingObjects properties.

Bugfixes

  • RLMLinkingObjects properties declared in Swift subclasses of RLMObject
    now work correctly.
  • Fix an assertion failure when deleting all objects of a type, inserting more
    objects, and then deleting some of the newly inserted objects within a single
    write transaction when there is an active notification block for a different
    object type which links to the objects being deleted.
  • Fix crashes and/or incorrect results when querying over multiple levels of
    LinkingObjects properties.
  • Fix opening read-only Realms on multiple threads at once.
  • Fix a BadTransactLog exception when storing dates before the unix epoch (1970-01-01).

v0.102.0

09 May 23:50
Compare
Choose a tag to compare

API breaking changes

  • None.

Enhancements

  • Add a method to rename properties during migrations:
    • Swift: Migration.renamePropertyForClass(_:oldName:newName:)
    • Objective-C: -[RLMMigration renamePropertyForClass:oldName:newName:]
  • Add deleteRealmIfMigrationNeeded to
    RLMRealmConfiguration/Realm.Configuration. When this is set to true,
    the Realm file will be automatically deleted and recreated when there is a
    schema mismatch rather than migrated to the new schema.

Bugfixes

  • Fix BETWEEN queries that traverse RLMArray/List properties to ensure that
    a single related object satisfies the BETWEEN criteria, rather than allowing
    different objects in the array to satisfy the lower and upper bounds.
  • Fix a race condition when a Realm is opened on one thread while it is in the
    middle of being closed on another thread which could result in crashes.
  • Fix a bug which could result in changes made on one thread being applied
    incorrectly on other threads when those threads are refreshed.
  • Fix crash when migrating to the new date format introduced in 0.101.0.
  • Fix crash when querying inverse relationships when objects are deleted.

v0.101.0

04 May 23:11
Compare
Choose a tag to compare

API breaking changes

  • Files written by this version of Realm cannot be read by older versions of
    Realm. Existing files will automatically be upgraded when they are opened.

Enhancements

  • Greatly improve performance of collection change calculation for complex
    object graphs, especially for ones with cycles.
  • NSDate properties now support nanoseconds precision.
  • Opening a single Realm file on multiple threads now shares a single memory
    mapping of the file for all threads, significantly reducing the memory
    required to work with large files.
  • Crashing while in the middle of a write transaction no longer blocks other
    processes from performing write transactions on the same file.
  • Improve the performance of refreshing a Realm (including via autorefresh)
    when there are live Results/RLMResults objects for that Realm.

Bugfixes

  • Fix an assertion failure of "!more_before || index >= std::prev(it)->second)"
    in IndexSet::do_add().
  • Fix a crash when an RLMArray or List object is destroyed from the wrong
    thread.