- None.
- None.
- Improved Unicode support in property names and string contents (Chinese, Russian, etc.). Closing #612 and #604.
- Potential bugs fixed related to migration when properties are removed.
- Fixed keyed subscripting for standalone RLMObjects.
- Rename migration methods to -migrateDefaultRealmWithBlock: and -migrateRealmAtPath:withBlock:
- Moved Realm specific query methods from RLMRealm to class methods on RLMObject (-allObjects: to +allObjectsInRealm: ect.)
- Added +createInDefaultRealmWithObject: method to RLMObject.
- Added support for array and object literals when calling -createWithObject: and -initWithObject: variants.
- Added method -deleteObjects: to batch delete objects from a Realm
- Support for defining RLMObject models entirely in Swift (experimental, see known issues).
- RLMArrays in Swift support Sequence-style enumeration (for obj in array).
- Implemented -indexOfObject: for RLMArray
- Properties other than String, NSData and NSDate require a default value in the model. This can be an empty (but typed) array for array properties.
- The previous caveat also implies that not all models defined in Objective-C can be used for object properties. Only Objective-C models with only implicit (i.e. primitives) or explicit default values can be used. However, any Objective-C model object can be used in a Swift array property.
- Array property accessors don't work until its parent object has been added to a realm.
- Realm-Bridging-Header.h is temporarily exposed as a public header. This is temporary and will be private again once rdar://17633863 is fixed.
- Does not leverage Swift generics and still uses RLM-prefix everywhere. This is coming in #549.
- Rename schemaForObject: to schemaForClassName: on RLMSchema
- Removed -objects:where: and -objects:orderedBy:where: from RLMRealm
- Removed -indexOfObjectWhere:, -objectsWhere: and -objectsOrderedBy:where: from RLMArray
- Removed +objectsWhere: and +objectsOrderedBy:where: from RLMObject
- New Xcode 6 project for experimental swift support.
- New Realm Editor app for reading and editing Realm db files.
- Added support for migrations.
- Added support for RLMArray properties on objects.
- Added support for creating in-memory default Realm.
- Added -objectsWithClassName:predicateFormat: and -objectsWithClassName:predicate: to RLMRealm
- Added -indexOfObjectWithPredicateFormat:, -indexOfObjectWithPredicate:, -objectsWithPredicateFormat:, -objectsWithPredi
- Added +objectsWithPredicateFormat: and +objectsWithPredicate: to RLMObject
- Now allows predicates comparing two object properties of the same type.
Completely rewritten to be much more object oriented.
- Everything
- None.
- None.
The Objective-C API has been updated and your code will break!
RLMTable
objects can only be created with anRLMRealm
object.- Renamed
RLMContext
toRLMTransactionManager
- Renamed
RLMContextDidChangeNotification
toRLMRealmDidChangeNotification
- Renamed
contextWithDefaultPersistence
tomanagerForDefaultRealm
- Renamed
contextPersistedAtPath:
tomanagerForRealmWithPath:
- Renamed
realmWithDefaultPersistence
todefaultRealm
- Renamed
realmWithDefaultPersistenceAndInitBlock
todefaultRealmWithInitBlock
- Renamed
find:
tofirstWhere:
- Renamed
where:
toallWhere:
- Renamed
where:orderBy:
toallWhere:orderBy:
- Added
countWhere:
onRLMTable
- Added
sumOfColumn:where:
onRLMTable
- Added
averageOfColumn:where:
onRLMTable
- Added
minOfProperty:where:
onRLMTable
- Added
maxOfProperty:where:
onRLMTable
- Added
toJSONString
onRLMRealm
,RLMTable
andRLMView
- Added support for
NOT
operator in predicates - Added support for default values
- Added validation support in
createInRealm:withObject:
- None.
TightDB is now Realm! The Objective-C API has been updated and your code will break!
- All references to TightDB have been changed to Realm.
- All prefixes changed from
TDB
toRLM
. TDBTransaction
andTDBSmartContext
have merged intoRLMRealm
.- Write transactions now take an optional rollback parameter (rather than needing to return a boolean).
addColumnWithName:
and variant methods now return the index of the newly created column if successful,NSNotFound
otherwise.
createTableWithName:columns:
has been added toRLMRealm
.- Added keyed subscripting for RLMTable's first column if column is of type RLMPropertyTypeString.
setRow:atIndex:
has been added toRLMTable
.RLMRealm
constructors now have variants that take an writable initialization block- New object interface - tables created/retrieved using
tableWithName:objectClass:
return custom objects
- None.
contextWithPersistenceToFile:error:
renamed tocontextPersistedAtPath:error:
inTDBContext
readWithBlock:
renamed toreadUsingBlock:
inTDBContext
writeWithBlock:error:
renamed towriteUsingBlock:error:
inTDBContext
readTable:withBlock:
renamed toreadTable:usingBlock:
inTDBContext
writeTable:withBlock:error:
renamed towriteTable:usingBlock:error:
inTDBContext
findFirstRow
renamed toindexOfFirstMatchingRow
onTDBQuery
.findFirstRowFromIndex:
renamed toindexOfFirstMatchingRowFromIndex:
onTDBQuery
.- Return
NSNotFound
instead of -1 when appropriate. - Renamed
castClass
tocastToTytpedTableClass
onTDBTable
. removeAllRows
,removeRowAtIndex
,removeLastRow
,addRow
andinsertRow
methods on table now return void instead of BOOL.
- A
TDBTable
can now be queried usingwhere:
andwhere:orderBy:
takingNSPredicate
andNSSortDescriptor
as arguments. - Added
find:
method onTDBTable
to find first row matching predicate. contextWithDefaultPersistence
class method added toTDBContext
. Will create a context persisted to a file in app/documents folder.renameColumnWithIndex:to:
has been added toTDBTable
.distinctValuesInColumnWithIndex
has been added toTDBTable
.dateIsBetween::
,doubleIsBetween::
,floatIsBetween::
andintIsBetween::
have been added toTDBQuery
.- Column names in Typed Tables can begin with non-capital letters too. The generated
addX
selector can look odd. For example, a table with one column with nameage
, appending a new row will look like[table addage:7]
. - Mixed typed values are better validated when rows are added, inserted, or modified as object literals.
addRow
,insertRow
, and row updates can be done using objects derived fromNSObject
.where
has been added toTDBView
andTDBViewProtocol
.- Adding support for "smart" contexts (
TDBSmartContext
).
- Modifications of a
TDBView
andTDBQuery
now throw an exception in a readtransaction.
The Objective-C API has been updated and your code will break!
Of notable changes a fast interface has been added.
This interface includes specific methods to get and set values into Tightdb.
To use these methods import <Tightdb/TightdbFast.h>
.
getTableWithName:
renamed totableWithName:
inTDBTransaction
.addColumnWithName:andType:
renamed toaddColumnWithName:type:
inTDBTable
.columnTypeOfColumn:
renamed tocolumnTypeOfColumnWithIndex
inTDBTable
.columnNameOfColumn:
renamed tonameOfColumnWithIndex:
inTDBTable
.addColumnWithName:andType:
renamed toaddColumnWithName:type:
inTDBDescriptor
.- Fast getters and setters moved from
TDBRow.h
toTDBRowFast.h
.
- Added
minDateInColumnWithIndex
andmaxDateInColumnWithIndex
toTDBQuery
. - Transactions can now be started directly on named tables.
- You can create dynamic tables with initial schema.
TDBTable
andTDBView
now have a shared protocol so they can easier be used interchangeably.
- Fixed bug in 64 bit iOS when inserting BOOL as NSNumber.
- Typed interface Cursor has now been renamed to Row.
- TDBGroup has been renamed to TDBTransaction.
- Header files are renamed so names match class names.
- Underscore (_) removed from generated typed table classes.
- TDBBinary has been removed; use NSData instead.
- Underscope (_) removed from generated typed table classes.
- Constructor for TDBContext has been renamed to contextWithPersistenceToFile:
- Table findFirstRow and min/max/sum/avg operations has been hidden.
- Table.appendRow has been renamed to addRow.
- getOrCreateTable on Transaction has been removed.
- set*:inColumnWithIndex:atRowIndex: methods have been prefixed with TDB
- *:inColumnWithIndex:atRowIndex: methods have been prefixed with TDB
- addEmptyRow on table has been removed. Use [table addRow:nil] instead.
- TDBMixed removed. Use id and NSObject instead.
- insertEmptyRow has been removed from table. Use insertRow:nil atIndex:index instead.
- Added firstRow, lastRow selectors on view.
- firstRow and lastRow on table now return nil if table is empty.
- getTableWithName selector added on group.
- getting and creating table methods on group no longer take error argument.
- [TDBQuery parent] and [TDBQuery subtable:] selectors now return self.
- createTable method added on Transaction. Throws exception if table with same name already exists.
- Experimental support for pinning transactions on Context.
- TDBView now has support for object subscripting.
- None.
The Objective-C API has been updated and your code will break!
- Most selectors have been renamed in the binding!
- Prepend TDB-prefix on all classes and types.
- Return types and parameters changed from size_t to NSUInteger.
- Adding setObject to TightdbTable (t[2] = @[@1, @"Hello"] is possible).
- Adding insertRow to TightdbTable.
- Extending appendRow to accept NSDictionary.
- None.
The Objective-C API has been updated and your code will break!
- addRow renamed to addEmptyRow
- Adding a simple class for version numbering.
- Adding get-version and set-version targets to build.sh.
- tableview now supports sort on column with column type bool, date and int
- tableview has method for checking the column type of a specified column
- tableview has method for getting the number of columns
- Adding methods getVersion, getCoreVersion and isAtLeast.
- Adding appendRow to TightdbTable.
- Adding object subscripting.
- Adding method removeColumn on table.
- None.
Template follows:
?? summary
- None.
- None.
- None.