Releases: realm/realm-swift
Releases · realm/realm-swift
v0.98.3
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
declaredignoredProperties
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
multipleRLMArray
/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
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 aRLMArray
/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
andOptional
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 aRLMArray
/List
property. Previously they were only required if the first key in the
key path was anRLMArray
/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
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 anRLMArray
.
v0.98.0
API breaking changes
+[RLMRealm realmWithPath:]
/Realm.init(path:)
now inherits from the default
configuration.- Swift 1.2 is no longer supported.
Enhancements
- Add
addNotificationBlock
toRLMResults
,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
'sSUBQUERY
operator is now supported. It has the following limitations:@count
is the only operator that may be applied to theSUBQUERY
expression.- The
SUBQUERY(…).@count
expression must be compared with a constant. - Correlated subqueries are not yet supported.
Bugfixes
- None.
v0.97.1
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 genericRLMErrorFileAccess
,
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
andNSDate
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 theRLMResults
is kept alive and instances of the target class
of the relationship are deleted.
v0.97.0
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
andRLMArray
. - 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
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 forRealmOptional
,MinMaxType
andAddableType
. - 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
orRealmOptional
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
v0.96.1
API breaking changes
- None.
Enhancements
- None.
Bugfixes
- Support assigning
Results
toList
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
- 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
andResults
is now declared in a
RealmCollectionType
protocol that both types conform to. Results.realm
now returns anOptional<Realm>
in order to conform to
RealmCollectionType
, but will always return.Some()
since aResults
cannot exist independently from aRealm
.- 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 onRLMRealm
/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 orRLMArray
/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.