Skip to content

Instantly share code, notes, and snippets.

@ullstrm
Last active June 1, 2019 22:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save ullstrm/8894f52c30e6eb858c208ebcfaf7f77c to your computer and use it in GitHub Desktop.
Save ullstrm/8894f52c30e6eb858c208ebcfaf7f77c to your computer and use it in GitHub Desktop.
Xcode 10.2 compiler optimization problem
//
// ViewController.swift
// Enums
//
// Created by Jonas Ullström on 2019-03-28.
// Copyright © 2019 ullstmr. All rights reserved.
//
import UIKit
class ViewController: UIViewController {
var enum1: SomeEnum = .standard
var enum2: SomeEnum2 = .standard
var valueEnum1: Bool!
var valueEnum2: Bool!
var log = ""
override func viewDidLoad() {
super.viewDidLoad()
let value1 = enum1.someBool
valueEnum1 = value1
log.append("let value1=\(value1)\n")
let value2 = enum2.someBool
valueEnum2 = value2
log.append("let value2=\(value2)\n")
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
let str = """
Actual
valueEnum1=\(valueEnum1!)
valueEnum2=\(valueEnum2!)
Log
\(log)
"""
let alert = UIAlertController(title: str, message: nil, preferredStyle: .alert)
self.present(alert, animated: true, completion: nil)
}
}
enum SomeEnum {
case
value(defaultUnknownInnerValue: UIStatusBarStyle),
standard,
somethingElse
var someBool: Bool {
switch self {
case .somethingElse:
return false
default:
return true
}
}
}
enum InnerEnum {
case a
case b
}
enum SomeEnum2 {
case
value(enumInnerValue: InnerEnum),
standard,
somethingElse
var someBool: Bool {
switch self {
case .somethingElse:
return false
default:
return true
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment