Skip to content

Releases: realm/realm-swift

v0.98.3

26 Feb 21:48
Compare
Choose a tag to compare

Enhancements

  • Initializing the shared schema is 3x faster.

Bugfixes

  • Using Realm Objective-C from Swift while having Realm Swift linked no longer causes that the
    declared ignoredProperties are not taken into account.
  • Fix assertion failures when rolling back a migration which added Object link
    properties to a class.
  • Fix potential errors when cancelling a write transaction which modified
    multiple RLMArray/List properties.
  • Report the correct value for inWriteTransaction after attempting to commit a
    write transaction fails.
  • Support CocoaPods 1.0 beginning from prerelease 1.0.0.beta.4 while retaining
    backwards compatibility with 0.39.

v0.98.2

18 Feb 20:51
Compare
Choose a tag to compare

API breaking changes

  • None.

Enhancements

  • Aggregate operations (ANY, NONE, @count, SUBQUERY, etc.) are now supported for key paths
    that begin with an object relationship so long as there is a RLMArray/List property at some
    point in a key path.
  • Predicates of the form %@ IN arrayProperty are now supported.

Bugfixes

  • Use of KVC collection operators on Swift collection types no longer throws an exception.
  • Fix reporting of inWriteTransaction in notifications triggered by
    beginWriteTransaction.
  • The contents of List and Optional properties are now correctly preserved when copying
    a Swift object from one Realm to another, and performing other operations that result in a
    Swift object graph being recursively traversed from Objective-C.
  • Fix a deadlock when queries are performed within a Realm notification block.
  • The ANY / SOME / NONE qualifiers are now required in comparisons involving a key path that
    traverse a RLMArray/List property. Previously they were only required if the first key in the
    key path was an RLMArray/List property.
  • Fix several scenarios where the default schema would be initialized
    incorrectly if the first Realm opened used a restricted class subset (via
    objectClasses/objectTypes).

v0.98.1

10 Feb 22:25
Compare
Choose a tag to compare

Bugfixes

  • Fix crashes when deleting an object containing an RLMArray/List which had
    previously been queried.
  • Fix a crash when deleting an object containing an RLMArray/List with
    active notification blocks.
  • Fix duplicate file warnings when building via CocoaPods.
  • Fix crash or incorrect results when calling indexOfObject: on an
    RLMResults derived from an RLMArray.

v0.98.0

05 Feb 03:14
Compare
Choose a tag to compare

API breaking changes

  • +[RLMRealm realmWithPath:]/Realm.init(path:) now inherits from the default
    configuration.
  • Swift 1.2 is no longer supported.

Enhancements

  • Add addNotificationBlock to RLMResults, Results, RLMArray, and
    List, which calls the given block whenever the collection changes.
  • Do a lot of the work for keeping RLMResults/Results up-to-date after
    write transactions on a background thread to help avoid blocking the main
    thread.
  • NSPredicate's SUBQUERY operator is now supported. It has the following limitations:
    • @count is the only operator that may be applied to the SUBQUERY expression.
    • The SUBQUERY(…).@count expression must be compared with a constant.
    • Correlated subqueries are not yet supported.

Bugfixes

  • None.

v0.97.1

29 Jan 21:53
Compare
Choose a tag to compare

API breaking changes

  • None.

Enhancements

  • Swift: Added Error enum allowing to catch errors e.g. thrown on initializing
    RLMRealm/Realm instances.
  • Fail with RLMErrorFileNotFound instead of the more generic RLMErrorFileAccess,
    if no file was found when a realm was opened as read-only or if the directory part
    of the specified path was not found when a copy should be written.
  • Greatly improve performance when deleting objects with one or more indexed
    properties.
  • Indexing BOOL/Bool and NSDate properties are now supported.
  • Swift: Add support for indexing optional properties.

Bugfixes

  • Fix incorrect results or crashes when using -[RLMResults setValue:forKey:]
    on an RLMResults which was filtered on the key being set.
  • Fix crashes when an RLMRealm is deallocated from the wrong thread.
  • Fix incorrect results from aggregate methods on Results/RLMResults after
    objects which were previously in the results are deleted.
  • Fix a crash when adding a new property to an existing class with over a
    million objects in the Realm.
  • Fix errors when opening encrypted Realm files created with writeCopyToPath.
  • Fix crashes or incorrect results for queries that use relationship equality
    in cases where the RLMResults is kept alive and instances of the target class
    of the relationship are deleted.

v0.97.0

17 Dec 20:12
Compare
Choose a tag to compare

API breaking changes

  • All functionality deprecated in previous releases has been removed entirely.
  • Add generic type annotations to NSArrays and NSDictionaries in public APIs.
  • Adding a Realm notification block on a thread not currently running from
    within a run loop throws an exception rather than silently never calling the
    notification block.

Enhancements

  • Support for tvOS.
  • Support for building Realm Swift from source when using Carthage.
  • The block parameter of -[RLMRealm transactionWithBlock:]/Realm.write(_:) is
    now marked as __attribute__((noescape))/@noescape.
  • Many forms of queries with key paths on both sides of the comparison operator
    are now supported.
  • Add support for KVC collection operators in RLMResults and RLMArray.
  • Fail instead of deadlocking in +[RLMRealm sharedSchema], if a Swift property is initialized
    to a computed value, which attempts to open a Realm on its own.

Bugfixes

  • Fix poor performance when calling -[RLMRealm deleteObjects:] on an
    RLMResults which filtered the objects when there are other classes linking
    to the type of the deleted objects.
  • An exception is now thrown when defining Object properties of an unsupported
    type.

v0.96.3

05 Dec 01:22
Compare
Choose a tag to compare

Enhancements

  • Queries are no longer limited to 16 levels of grouping.
  • Rework the implementation of encrypted Realms to no longer interfere with
    debuggers.

Bugfixes

  • Fix crash when trying to retrieve object instances via dynamicObjects.
  • Throw an exception when querying on a link providing objects, which are from a different Realm.
  • Return empty results when querying on a link providing an unattached object.
  • Fix crashes or incorrect results when calling -[RLMRealm refresh] during
    fast enumeration.
  • Add Int8 support for RealmOptional, MinMaxType and AddableType.
  • Set the default value for newly added non-optional NSData properties to a
    zero-byte NSData rather than nil.
  • Fix a potential crash when deleting all objects of a class.
  • Fix performance problems when creating large numbers of objects with
    RLMArray/List properties.
  • Fix memory leak when using Object(value:) for subclasses with
    List or RealmOptional properties.
  • Fix a crash when computing the average of an optional integer property.
  • Fix incorrect search results for some queries on integer properties.
  • Add error-checking for nil realm parameters in many methods such as
    +[RLMObject allObjectsInRealm:].
  • Fix a race condition between commits and opening Realm files on new threads
    that could lead to a crash.
  • Fix several crashes when opening Realm files.

v0.96.2

26 Oct 22:41
Compare
Choose a tag to compare

Prebuilt frameworks are now built with Xcode 7.1.

Bugfixes

  • Fix ignoring optional properties in Swift.
  • Fix CocoaPods installation on case-sensitive file systems.

v0.96.1

20 Oct 23:40
Compare
Choose a tag to compare

API breaking changes

  • None.

Enhancements

  • None.

Bugfixes

  • Support assigning Results to List properties via KVC.
  • Honor the schema version set in the configuration in +[RLMRealm migrateRealm:].
  • Fix crash when using optional Int16/Int32/Int64 properties in Swift.

v0.96.0

14 Oct 20:37
Compare
Choose a tag to compare
  • No functional changes since beta2.

0.96.0-beta2 Release notes (2015-10-08)

Bugfixes

  • Add RLMOptionalBase.h to the podspec.

0.96.0-beta Release notes (2015-10-07)

API breaking changes

  • CocoaPods v0.38 or greater is now required to install Realm and RealmSwift
    as pods.

Enhancements

  • Functionality common to both List and Results is now declared in a
    RealmCollectionType protocol that both types conform to.
  • Results.realm now returns an Optional<Realm> in order to conform to
    RealmCollectionType, but will always return .Some() since a Results
    cannot exist independently from a Realm.
  • Aggregate operations are now available on List: min, max, sum,
    average.
  • Committing write transactions (via commitWrite / commitWriteTransaction and
    write / transactionWithBlock) now optionally allow for handling errors when
    the disk is out of space.
  • Added isEmpty property on RLMRealm/Realm to indicate if it contains any
    objects.
  • The @count, @min, @max, @sum and @avg collection operators are now
    supported in queries

Bugfixes

  • Fix assertion failure when inserting NSData between 8MB and 16MB in size.
  • Fix assertion failure when rolling back a migration which removed an object
    link or RLMArray/List property.
  • Add the path of the file being opened to file open errors.
  • Fix a crash that could be triggered by rapidly opening and closing a Realm
    many times on multiple threads at once.
  • Fix several places where exception messages included the name of the wrong
    function which failed.