Apple is still coming out with updates to their API as Xcode approaches the final release of 8.0. As we begin developing Tagmento, here are the latest list of changes we noticed with Beta 6:

Any replaces AnyObject

Dictionaries returned by the API or instantiated as literals are no longer assumed to have AnyObject values but Any values. This would be places like:

func application
    (_ application: UIApplication, 
        didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool

are now:

func application
    (_ application: UIApplication, 
        didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool

This includes literals such as [String:AnyObject] is now [String:Any]. Also senders in various UIViewController methods are now Any? no longer AnyObject?. This includes:

public override func prepare(for segue: UIStoryboardSegue, sender: AnyObject?)

changed to:

public override func prepare(for segue: UIStoryboardSegue, sender: Any?)

SE-0116 - Import Objective-C id as Swift Any type

Must Specify Escaping Closures

Closure parameters are no longer assumed to be escaping; that is they escape the calling function. Therefore closures need to be specified as escaping using the @escaping annotation.

SE-0103 - Make non-escaping closures the default

type of operator

The dynamicType property has been changed to the type(of: _) operator.

SE-0096 - Converting dynamicType from a property to an operator

Process.arguments becomes CommandLine.arguments

To get the arguments passed to an application for both iOS and macOS, use CommandLine.arguments rather than Process.arguements.


We are getting down to the line when it comes to the release of Xcode 8.

If you are looking for help updating your application, contact us and let us know how we can help.

If you are interested in time management and willing to test Tagmento on iOS10, you can submit your email address at Tagmento.