             if error != nil {
                 // A real application would handle various errors like network conditions,
                 // server conflicts, etc via the MSSyncContextDelegate
-                println("Error: \(error.description)")
+                println("Error: \(error!.description)")
                 
                 // We will just discard our changes and keep the servers copy for simplicity                
-                if let opErrors = error.userInfo?[MSErrorPushResultKey] as? Array<MSTableOperationError> {
+                if let opErrors = error!.userInfo?[MSErrorPushResultKey] as? Array<MSTableOperationError> {
                     for opError in opErrors {
                         println("Attempted operation to item \(opError.itemId)")
                         if (opError.operation == .Insert || opError.operation == .Delete) {

        self.table!.update(item) { (error) -> Void in
            UIApplication.sharedApplication().networkActivityIndicatorVisible = false
            if error != nil {
                println("Error: \(error.description)")
                return
            }
        }

                            opError.cancelOperationAndDiscardItemWithCompletion(nil)
                        } else {
                            println("Update failed, reverting to server's copy")
                            opError.cancelOperationAndUpdateItem(opError.serverItem!, completion: nil)
                        }
                    }
                }
