Change Log

All notable changes to this project will be documented in this file.

Next

11.0.2

Added

Removed

11.0.1

Fixed

11.0.0

11.0.0-beta.1

Added

Removed

Breaking

10.0.0

Added

10.0.0-beta.1

Removed

9.1.2

Added

9.1.1

Fixed

9.1.0

Changed

9.0.1

Changed

9.0.0

Changed

9.0.0-beta.1

Added

Changed

This release requires Swift 5.3.

Some context: this release heavily relies on where clauses on contextually generic declarations, that are only available in Swift 5.3 - SE-0267.

Breaking

Deprecated

8.1.0

Changed

Please note, that this framework version source is identical to previous version (apart from some small Realm adjustments), which supports iOS 8 / tvOS 9 / Swift 4.0 and higher.

8.0.0

8.0.0-beta.2

8.0.0-beta.1

This is a major release with some breaking changes, please read DTModelStorage 8.0 Migration Guide

Added

Changed

Breaking

Identifiable protocol has been renamed to EntityIdentifiable protocol to avoid unwanted clashes with Foundation.Identifiable protocol, that is available on iOS 13 and higher.

Complete rewrite of header/footer/supplementary model handling. Instead of several implementations and model storages, the API now consists of three closure based properties on SupplementaryStorage protocol : headerModelProvider, footerModelProvider and supplementaryModelProvider. All storage classes implement this protocol (MemoryStorage, CoreDataStorage, RealmStorage, SingleSectionStorage, ProxyDiffableDataSourceStorage).

Storage protocols and classes have been restructured:

Several methods continue to work, but are now bridging to new closure-based API:

setSectionHeaderModels and setSectionFooterModels, as well as new closure-based API do not call reloadData method, as they were doing before. If you need to reset section headers/footers/supplementaries, consider calling StorageUpdating.storageNeedsReloading() method manually.

All methods that allowed to set header/footer/supplementary models partially, for a specific section or specific supplementary kind, have been made unavailable or removed.

CoreDataStorage now sets headerModelProvider closure to allow using FetchedResultsController section name as header instead of having arbitrary logic that compared supplementaryKind to displaySectionNameForSupplementaryKinds property, which is also made unavailable.

Removed

7.4.1

Fixed

7.4.0

Added

Changed

7.3.0

Added

Deprecated

Removed

7.2.1

7.2.0

Added

Read more about it in README.

manager.register(PostCell.self) { mapping in
  mapping.condition = PostCell.modelCondition { indexPath, model in
    return model.isMyPost // here model type is inferred from PostCell ModelTransfer implementation
  }
}
memoryStorage.anomalyHandler.silenceAnomaly(.moveItemFailedItemNotFound(indexPath: IndexPath(section: 0, row: 0)))

Alternatively, you may want to silence anomaly using closure, if anomaly contents are only calculatable at runtime:

memoryStorage.anomalyHandler.silenceAnomaly { anomaly in
    switch anomaly {
    case .replaceItemFailedItemNotFound: return true
    default: return false
    }
}

7.1.0

Added

Changed

Fixed

7.0.3

7.0.2

7.0.1

7.0.0

7.0.0-beta.1

MemoryStorage.defersDatasourceUpdates = false

6.0.0

6.0.0-beta.2

6.0.0-beta.1

This is major release, containing breaking API changes, please read DTTableViewManager 6.0 Migration Guide

Breaking

5.1.0

5.0.1

5.0.0

4.1.0

4.0.0

3.0.0

No changes

3.0.0-beta.3

3.0.0-beta.2

3.0.0-beta.1

Swift 3.0 and higher is required for this version of framework.

Note Beta 1 Does not include RealmStorage subspec due to RealmSwift.framework podspec issues

Reworked

Added

Removed

2.6.2

Fixed

2.6.1

Fixed

Added

Updated

2.6.0

Changed

Fixed

2.5.1

Changed

2.5.0

Breaking

Added

Changed

2.4.4

Changed

2.4.3

Changed

2.4.2

Changed

2.4.1

Changed

2.4.0

Added

Removed

Removed API, deprecated in previous releases. All removed API calls are superseded by following replacement methods.

2.3.0

Added

Removed

2.2.0

Added

Fixed

2.1.3

Fixed

2.1.2

Added

Updated

2.1.1

Added

2.1.0

Updated

Fixed

Removed

2.0.0

Framework was completely rewritten from scratch in Swift 2.

For more details, read blog post.