Skip to content

Commit 6b36dde

Browse files
committed
make subscript generic
1 parent fc14817 commit 6b36dde

File tree

3 files changed

+11
-21
lines changed

3 files changed

+11
-21
lines changed

Configurations/Configurations.swift

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,9 @@ public class Configuration: NSObject {
1414

1515
public private(set) var configurationName: String?
1616
private var dictionary: NSDictionary!
17-
18-
public static func defaultConfiguration() -> Configuration {
19-
struct Static {
20-
static var instance = Configuration()
21-
}
22-
return Static.instance
23-
}
24-
17+
18+
public static let `default` = Configuration()
19+
2520
private override init() {
2621
super.init()
2722

@@ -30,7 +25,8 @@ public class Configuration: NSObject {
3025
self.configurationName = bundle.infoDictionary![CurrentConfigurationPlistKey] as? String
3126

3227
guard self.configurationName != nil else {
33-
fatalError("No Configuration property found in plist")
28+
assertionFailure("No Configuration property found in plist")
29+
return
3430
}
3531

3632
let plistName = bundle.infoDictionary![self.ConfigurationPlistKey] as! String
@@ -40,9 +36,9 @@ public class Configuration: NSObject {
4036
self.dictionary = dictionary?.value(forKey: self.configurationName!) as! NSDictionary
4137
}
4238

43-
public subscript(key: String) -> AnyObject? {
39+
public subscript<T>(key: String) -> T? {
4440
get {
45-
return self.dictionary.value(forKey: key) as AnyObject
41+
return self.dictionary.value(forKey: key) as? T
4642
}
4743
}
4844

ConfigurationsExample/ConfigurationsExampleIOS/ViewController.swift

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,9 @@ class ViewController: UIViewController {
1616
override func viewDidLoad() {
1717
super.viewDidLoad()
1818

19-
let configuration = Configuration.defaultConfiguration()
19+
let configuration = Configuration.default
2020

21-
if let value = configuration["Greeting"] as? String {
22-
self.greetingLabel.text = value
23-
}
21+
self.greetingLabel.text = configuration["Greeting"]!
2422
}
2523

2624
override func didReceiveMemoryWarning() {

ConfigurationsExample/ConfigurationsExampleOSX/AppDelegate.swift

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,11 @@ class AppDelegate: NSObject, NSApplicationDelegate {
1515
@IBOutlet weak var window: NSWindow!
1616
@IBOutlet weak var greetingLabel: NSTextField!
1717

18-
1918
func applicationDidFinishLaunching(_ aNotification: Notification) {
2019

21-
let configuration = Configuration.defaultConfiguration()
22-
23-
if let value = configuration["Greeting"] as? String {
24-
self.greetingLabel.stringValue = value
25-
}
20+
let configuration = Configuration.default
2621

22+
self.greetingLabel.stringValue = configuration["Greeting"]!
2723
}
2824

2925
func applicationWillTerminate(_ aNotification: Notification) {

0 commit comments

Comments
 (0)