Swift歴は浅いのですが、
- Info.plist
- NSUserDefaults
- NSLocalizedString
を簡単に取り出す拡張を書いてみました。
以下の3ファイルをプロジェクトに追加すれば、どこでも使うことができます。
もっと良い書き方があれば、ぜひ教えて下さい。
こんな風に使えます
AppDelegate.swift
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
// 「初回起動ですよ」
UD.setAsDefault("isFirstLaunch", value: true)
// 開発中なら…
if InfoPList.get("ShouldResetUserDefaultOnLaunch") as! Bool {
UD.reset()
}
return true
}
ViewController.swift
...
recordButton.setTitle(local("Preparing"), forState: .Normal)
...
拡張ファイル
NSObject+InfoPList.swift
class InfoPList: NSObject {
class func get(label: String!) -> AnyObject?{
return NSBundle.mainBundle().objectForInfoDictionaryKey(label)
}
}
NSObject+UD.swift
import Foundation
class UD: NSObject {
static let ud = NSUserDefaults.standardUserDefaults()
class func get(key: String!) -> AnyObject? {
return ud.objectForKey(key)
}
class func set(key: String!, value: AnyObject!) {
ud.setObject(value, forKey: key)
ud.synchronize()
}
class func remove(key: String!) {
ud.removeObjectForKey(key)
}
class func reset() {
let bundle = NSBundle.mainBundle().bundleIdentifier
ud.removePersistentDomainForName(bundle!)
}
class func setAsDefault(key: String!, value: AnyObject!) {
ud.registerDefaults([key: value])
}
}
NSObject+local
import Foundation
func local(key: String!) -> String {
return NSLocalizedString(key, comment: "")
}
ブログやっています:http://weed.nagoya