Merge pull request #12 from nickoneill/master

Swift 1.2 support
This commit is contained in:
Matt Coneybeare
2015-04-11 09:17:34 -04:00
3 changed files with 38 additions and 37 deletions

View File

@@ -55,12 +55,12 @@ extension ViewController {
// Only set it if we are using Armchair localizations
if !Armchair.useMainAppBundleForLocalizations() {
var currentLocalization: NSString = NSBundle.mainBundle().preferredLocalizations[0] as NSString
var currentLocalization: NSString = NSBundle.mainBundle().preferredLocalizations[0] as! NSString
// Only set it if we are using a different language than this apps development language
if let developmentLocalization = NSBundle.mainBundle().developmentLocalization {
if currentLocalization != developmentLocalization {
languageLabelText = currentLocalization
if let displayName = NSLocale(localeIdentifier: currentLocalization).displayNameForKey(NSLocaleIdentifier, value:currentLocalization) {
languageLabelText = currentLocalization as String
if let displayName = NSLocale(localeIdentifier: currentLocalization as String).displayNameForKey(NSLocaleIdentifier, value:currentLocalization) {
languageLabelText = "\(displayName): \(currentLocalization)"
}
}

View File

@@ -27,7 +27,7 @@ import SystemConfiguration
#if os(iOS)
import UIKit
#elseif os(OSX)
import Appkit
import AppKit
#else
// Not yet supported
#endif
@@ -586,20 +586,20 @@ public func shouldIncrementUseCountClosure(shouldIncrementUseCountClosure: Armch
public class StandardUserDefaults: ArmchairDefaultsObject {
let defaults = NSUserDefaults.standardUserDefaults()
public func objectForKey(defaultName: String) -> AnyObject? { return defaults.objectForKey(defaultName) }
public func setObject(value: AnyObject?, forKey defaultName: String) { defaults.setObject(value, forKey: defaultName) }
public func removeObjectForKey(defaultName: String) { defaults.removeObjectForKey(defaultName) }
@objc public func objectForKey(defaultName: String) -> AnyObject? { return defaults.objectForKey(defaultName) }
@objc public func setObject(value: AnyObject?, forKey defaultName: String) { defaults.setObject(value, forKey: defaultName) }
@objc public func removeObjectForKey(defaultName: String) { defaults.removeObjectForKey(defaultName) }
public func stringForKey(defaultName: String) -> String? { return defaults.stringForKey(defaultName) }
public func integerForKey(defaultName: String) -> Int { return defaults.integerForKey(defaultName) }
public func doubleForKey(defaultName: String) -> Double { return defaults.doubleForKey(defaultName) }
public func boolForKey(defaultName: String) -> Bool { return defaults.boolForKey(defaultName) }
@objc public func stringForKey(defaultName: String) -> String? { return defaults.stringForKey(defaultName) }
@objc public func integerForKey(defaultName: String) -> Int { return defaults.integerForKey(defaultName) }
@objc public func doubleForKey(defaultName: String) -> Double { return defaults.doubleForKey(defaultName) }
@objc public func boolForKey(defaultName: String) -> Bool { return defaults.boolForKey(defaultName) }
public func setInteger(value: Int, forKey defaultName: String) { defaults.setInteger(value, forKey: defaultName) }
public func setDouble(value: Double, forKey defaultName: String) { defaults.setDouble(value, forKey: defaultName) }
public func setBool(value: Bool, forKey defaultName: String) { defaults.setBool(value, forKey: defaultName) }
@objc public func setInteger(value: Int, forKey defaultName: String) { defaults.setInteger(value, forKey: defaultName) }
@objc public func setDouble(value: Double, forKey defaultName: String) { defaults.setDouble(value, forKey: defaultName) }
@objc public func setBool(value: Bool, forKey defaultName: String) { defaults.setBool(value, forKey: defaultName) }
public func synchronize() -> Bool { return defaults.synchronize() }
@objc public func synchronize() -> Bool { return defaults.synchronize() }
}
public enum ArmchairKey: String, Printable {
@@ -691,8 +691,8 @@ public class Manager : ArmchairManager {
private func defaultAppName() -> String {
let mainBundle = NSBundle.mainBundle()
let displayName = mainBundle.objectForInfoDictionaryKey("CFBundleDisplayName") as? String
let bundleNameKey = kCFBundleNameKey as NSString?
let name = mainBundle.objectForInfoDictionaryKey(bundleNameKey as String) as? String
let bundleNameKey = kCFBundleNameKey as String
let name = mainBundle.objectForInfoDictionaryKey(bundleNameKey) as? String
return displayName ?? name ?? "This App"
}
@@ -918,8 +918,9 @@ public class Manager : ArmchairManager {
private func _incrementCountForKeyType(incrementKeyType: ArmchairKey) {
var incrementKey = keyForArmchairKeyType(incrementKeyType)
let bundleVersionKey = kCFBundleVersionKey as String
// App's version. Not settable as the other ivars because that would be crazy.
let currentVersion = NSBundle.mainBundle().objectForInfoDictionaryKey(kCFBundleVersionKey) as? NSString
let currentVersion = NSBundle.mainBundle().objectForInfoDictionaryKey(bundleVersionKey) as? String
if currentVersion == nil {
assertionFailure("Could not read kCFBundleVersionKey from InfoDictionary")
return
@@ -1411,31 +1412,31 @@ public class Manager : ArmchairManager {
private func setKey(key: NSString, armchairKeyType: ArmchairKey) {
switch armchairKeyType {
case .FirstUseDate:
armchairKeyFirstUseDate = key
armchairKeyFirstUseDate = key as String
case .UseCount:
armchairKeyUseCount = key
armchairKeyUseCount = key as String
case .SignificantEventCount:
armchairKeySignificantEventCount = key
armchairKeySignificantEventCount = key as String
case .CurrentVersion:
armchairKeyCurrentVersion = key
armchairKeyCurrentVersion = key as String
case .RatedCurrentVersion:
armchairKeyRatedCurrentVersion = key
armchairKeyRatedCurrentVersion = key as String
case .DeclinedToRate:
armchairKeyDeclinedToRate = key
armchairKeyDeclinedToRate = key as String
case .ReminderRequestDate:
armchairKeyReminderRequestDate = key
armchairKeyReminderRequestDate = key as String
case .PreviousVersion:
armchairKeyPreviousVersion = key
armchairKeyPreviousVersion = key as String
case .PreviousVersionRated:
armchairKeyPreviousVersionRated = key
armchairKeyPreviousVersionRated = key as String
case .PreviousVersionDeclinedToRate:
armchairKeyPreviousVersionDeclinedToRate = key
armchairKeyPreviousVersionDeclinedToRate = key as String
case .RatedAnyVersion:
armchairKeyRatedAnyVersion = key
armchairKeyRatedAnyVersion = key as String
case .AppiraterMigrationCompleted:
armchairKeyAppiraterMigrationCompleted = key
armchairKeyAppiraterMigrationCompleted = key as String
case .UAAppReviewManagerMigrationCompleted:
armchairKeyUAAppReviewManagerMigrationCompleted = key
armchairKeyUAAppReviewManagerMigrationCompleted = key as String
}
}
@@ -1465,7 +1466,7 @@ public class Manager : ArmchairManager {
private func migrateAppiraterKeysIfNecessary() {
let appiraterAlreadyCompletedKey: NSString = keyForArmchairKeyType(.AppiraterMigrationCompleted)
var appiraterMigrationAlreadyCompleted = userDefaultsObject?.boolForKey(appiraterAlreadyCompletedKey)
var appiraterMigrationAlreadyCompleted = userDefaultsObject?.boolForKey(appiraterAlreadyCompletedKey as String)
if let completed = appiraterMigrationAlreadyCompleted {
if completed {
@@ -1490,14 +1491,14 @@ public class Manager : ArmchairManager {
}
}
userDefaultsObject?.setObject(NSNumber(bool: true), forKey: appiraterAlreadyCompletedKey)
userDefaultsObject?.setObject(NSNumber(bool: true), forKey: appiraterAlreadyCompletedKey as String)
userDefaultsObject?.synchronize()
}
// This only supports the default UAAppReviewManager keys. If you customized them, you will have to manually migrate your values over.
private func migrateUAAppReviewManagerKeysIfNecessary() {
let appReviewManagerAlreadyCompletedKey: NSString = keyForArmchairKeyType(.UAAppReviewManagerMigrationCompleted)
var appReviewManagerMigrationAlreadyCompleted = userDefaultsObject?.boolForKey(appReviewManagerAlreadyCompletedKey)
var appReviewManagerMigrationAlreadyCompleted = userDefaultsObject?.boolForKey(appReviewManagerAlreadyCompletedKey as String)
if let completed = appReviewManagerMigrationAlreadyCompleted {
if completed {
@@ -1525,7 +1526,7 @@ public class Manager : ArmchairManager {
}
}
userDefaultsObject?.setObject(NSNumber(bool: true), forKey: appReviewManagerAlreadyCompletedKey)
userDefaultsObject?.setObject(NSNumber(bool: true), forKey: appReviewManagerAlreadyCompletedKey as String)
userDefaultsObject?.synchronize()
}

View File

@@ -421,7 +421,7 @@
EMBEDDED_CONTENT_CONTAINS_SWIFT = YES;
GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)";
INFOPLIST_FILE = "$(SRCROOT)/Example/Info-iOS.plist";
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
OTHER_SWIFT_FLAGS = "";
PRODUCT_NAME = "iOS Example";
@@ -438,7 +438,7 @@
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
EMBEDDED_CONTENT_CONTAINS_SWIFT = YES;
INFOPLIST_FILE = "$(SRCROOT)/Example/Info-iOS.plist";
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_NAME = "iOS Example";
PROVISIONING_PROFILE = "";