mirror of
https://github.com/JohnEstropia/CoreStore.git
synced 2026-03-29 22:01:56 +02:00
Updated Logging and error handling (markdown)
@@ -1,4 +1,4 @@
|
|||||||
One unfortunate thing when using some third-party libraries is that they usually pollute the console with their own logging mechanisms. CoreStore provides it's own default logging class, but you can plug-in your own favorite logger by implementing the `CoreStoreLogger` protocol.
|
One unfortunate thing when using some third-party libraries is that they usually pollute the console with their own logging mechanisms. CoreStore provides its own default logging class, but you can plug-in your own favorite logger by implementing the `CoreStoreLogger` protocol.
|
||||||
```swift
|
```swift
|
||||||
final class MyLogger: CoreStoreLogger {
|
final class MyLogger: CoreStoreLogger {
|
||||||
func log(#level: LogLevel, message: String, fileName: StaticString, lineNumber: Int, functionName: StaticString) {
|
func log(#level: LogLevel, message: String, fileName: StaticString, lineNumber: Int, functionName: StaticString) {
|
||||||
@@ -20,13 +20,7 @@ CoreStore.logger = MyLogger()
|
|||||||
```
|
```
|
||||||
Doing so channels all logging calls to your logger.
|
Doing so channels all logging calls to your logger.
|
||||||
|
|
||||||
Note that to keep the call stack information intact, all calls to these methods are not thread-managed. Thus you have to make sure that your logger is thread-safe or you may otherwise have to dispatch your logging implementation to a serial queue.
|
Note that to keep the call stack information intact, all calls to these methods are **NOT** thread-managed. Therefore you have to make sure that your logger is thread-safe or you may otherwise have to dispatch your logging implementation to a serial queue.
|
||||||
|
|
||||||
## <a id="observing"></a>Observing changes and notifications
|
|
||||||
CoreStore provides type-safe wrappers for observing managed objects:
|
|
||||||
|
|
||||||
- `ManagedObjectController`: use to observe changes to a single `NSManagedObject` instance (instead of Key-Value Observing)
|
|
||||||
- `ManagedObjectListController`: use to observe changes to a list of `NSManagedObject` instances (instead of `NSFetchedResultsController`)
|
|
||||||
|
|
||||||
|
|
||||||
## Contents
|
## Contents
|
||||||
|
|||||||
Reference in New Issue
Block a user