-
Robert M. Ryan authored
There were several properties that were implemented as simple getter and setter methods, with no formal property definitions, but with manually defined ivars. In Objective-C this isn't problematic (as the Objective-C "dot" notation is merely syntactic sugar), but it leads to an unintuitive interface for Swift. By shifting these manually implemented getter/setters with manual ivars to properties makes the code a little more intuitive, and leads to more natural looking code in Swift (e.g. rather than `let timeout = db.maxBusyRetryTimeInterval()` and `db.setMaxBusyRetryTimeInterval(value)`, we can just do more natural `let timeout = db.maxBusyRetryTimeoutInterval` and `db.maxBusyRetryTimeInterval = value`. Affected properties include `databasePath`, `maxBusyRetryTimeInterval`, `shouldCacheStatements`, `sqliteHandle`, `hasOpenResultSets`, `lastInsertRowId`, `changes`, `goodConnection`, `columnCount`, `resultDictionary`, `applicationID`, `applicationIDString`, `userVersion`, `countOfCheckedInDatabases`, `countOfCheckedOutDatabases`, and `countOfOpenDatabases`. Also updated documentation for the file URL based methods. Also a few deprecated methods have been updated with `__deprecated_msg` so that the app developers have a fighting chance to see what the replacement method should be. Renamed `isInTransaction`. Fixed a few nullability definitions, e.g. `stringForColumn` (and all the other similar ones that return pointers), `columnNameForIndex`, etc. The `objectForColumn` (and the associated subscript operator) now returns `nil` if an invalid column name/index is passed to it. It used to return `NSNull`. I've created unit tests that test that. Updated README
07e0362e