Releases: KrakenDev/PrediKit
Fixes compilation errors on Debug for String initializers
Thanks @NerdBird for pointing out this issue!
Support for Swift 4.2!
Xcode 10, Swift 4.2 update (#10) * Bool values result in nil via as CVarargs, so use NSNumber to resolve crash * Resolve build issue in Xcode 10 new build system Remove watchOS and tvOS Info.plist copy phase in build phase of iOS and OSX target, as this is causing issue with new build system. Similar example https://stackoverflow.com/questions/50718018/xcode-10-error-multiple-commands-produce * Update project settings to recommended settings, Swift 4.2 * Replace deprecated flatmap with compactMap * Update supporting files and documentation to Swift 4.2
Support for Swift 4!
Swift 4 support (#8) * - convert to swift 4 * - fixed warnings * - update tvOS to swift 4 - update OS X to swift 4 - update watch OS to swift 4 - update travis yml config file - update swift-version * - remove mplicitly unwrapped optional * - update variables in travis yml * - add ruby-version file * - install cocoapods on travis * - fix apple tv device for travis ci
Support for Swift 3!
Not too much of an overhaul. However, in order to support Swift 3.0, there were a couple of changes that needed to be made.
- First off, the use of PrediKit in Swift 3 caused a bunch of unused result warnings. This has been fixed by assigning the
@discardableResult
attribute to any function that returned aFinalizableIncluder<T>
. This change shouldn't affect anything you are already doing. - One breaking change is to variables that returned a
FinalizableIncluder<T>
instance. These needed to be converted to functions since you can't mark variables with attributes. The unused result warnings wouldn't go away until I converted these variables to functions so I can mark them with@discardableResult
attribute.
If your code uses these variables (for example, the use of includeIf.string(property).isEmpty
), then you need to add an open and close paren to the end of the variable.
This means that current use of these variables will be returning a () -> FinalizableIncluder<T>
function pointer instead of the result of the function. This may result in errors that look like this: "Binary operator '&&' cannot be applied to operands of type 'FinalizedIncluder' and '() -> FinalizedIncluder'". The fix is to simply tack on a ()
to the end of the closure operand value.
- Another breaking change is the change of all includers to use
Strings
instead ofSelectors
. With the advent of Swift 3, I want to encourage you to use Swift 3's#keyPath()
syntax to help you ensure the correctness of your property paths at compile time. Since#keyPath()
returns a string value, it just made sense to switch over to using Strings now. However, this now gives you a chance to use PrediKit unsafely. Remember, with great power comes great responsibility. So I'll say it again:
DON'T STRINGIFY YOUR PROPERTIES, USE #KEYPATH FOR HAPPINESS INSTEAD!
Lowers minimum deployment targets
Should solve #6
Updates Deployment Targets for external CI
When including this as a subproject in another project, external CI builds fail due to minimum deployment targets being too high
Adds support for watchOS and tvOS
Breaking changes have been made as well. Most classes have been renamed for clarity and PrediKit.swift has been split up into manageable chunks in their own files for any potential contributors.
We've also added support for passing in instances of NSArray to the matchesAnyValueIn query.
Removes Unnecessary Prints
Oops! I did it again.
Fixes Issue #5
Arguments weren't being parsed or handled correctly for arbitrary includer combination arrangements. This caused arguments to be switched around. We now respect the order of the combinations specified by the developer as the Great Gatsby intended it.
OSX Support
Aco Taco. I touted OSX support but didn't actually do it. Whoopsies that should be remedied now!