diff --git a/CoreStore.podspec b/CoreStore.podspec index e211754..bd6c0ca 100644 --- a/CoreStore.podspec +++ b/CoreStore.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "CoreStore" - s.version = "1.4.1" + s.version = "1.4.2" s.license = "MIT" s.summary = "Unleashing the real power of Core Data with the elegance and safety of Swift" s.homepage = "https://github.com/JohnEstropia/CoreStore" diff --git a/CoreStore/Info.plist b/CoreStore/Info.plist index 07b3f7e..222de54 100644 --- a/CoreStore/Info.plist +++ b/CoreStore/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 1.4.1 + 1.4.2 CFBundleSignature ???? CFBundleVersion diff --git a/CoreStore/Observing/ListMonitor.swift b/CoreStore/Observing/ListMonitor.swift index d2a6179..0192a18 100644 --- a/CoreStore/Observing/ListMonitor.swift +++ b/CoreStore/Observing/ListMonitor.swift @@ -335,6 +335,56 @@ public final class ListMonitor { return sections[section] } + /** + Returns the `NSFetchedResultsSectionInfo`s for all sections + + - returns: the `NSFetchedResultsSectionInfo`s for all sections + */ + @warn_unused_result + public func sections() -> [NSFetchedResultsSectionInfo] { + + CoreStore.assert( + !self.isPendingRefetch || NSThread.isMainThread(), + "Attempted to access a \(typeName(self)) outside the main thread while a refetch is in progress." + ) + + return self.fetchedResultsController.sections ?? [] + } + + /** + Returns the target section for a specified "Section Index" title and index. + + - parameter title: the title of the Section Index + - parameter index: the index of the Section Index + - returns: the target section for the specified "Section Index" title and index. + */ + @warn_unused_result + public func targetSectionForSectionIndex(title title: String, index: Int) -> Int { + + CoreStore.assert( + !self.isPendingRefetch || NSThread.isMainThread(), + "Attempted to access a \(typeName(self)) outside the main thread while a refetch is in progress." + ) + + return self.fetchedResultsController.sectionForSectionIndexTitle(title, atIndex: index) + } + + /** + Returns the section index titles for all sections + + - returns: the section index titles for all sections + */ + @warn_unused_result + public func sectionIndexTitles() -> [String] { + + CoreStore.assert( + !self.isPendingRefetch || NSThread.isMainThread(), + "Attempted to access a \(typeName(self)) outside the main thread while a refetch is in progress." + ) + + return self.fetchedResultsController.sectionIndexTitles + } + /** Returns the index of the `NSManagedObject` if it exists in the `ListMonitor`'s fetched objects, or `nil` if not found.