removeAllListeners when cleanAllUserDefaults

This commit is contained in:
nixzhu
2015-09-02 12:35:53 +08:00
parent d4d36cf427
commit 5b06a8a40c
4 changed files with 23 additions and 1 deletions
+15 -1
View File
@@ -68,10 +68,15 @@ class Listenable<T> {
for listener in listenerSet {
if listener.name == name {
listenerSet.remove(listener)
break
}
}
}
func removeAllListeners() {
listenerSet.removeAll(keepCapacity: false)
}
init(_ v: T, setterAction action: SetterAction) {
value = v
setterAction = action
@@ -95,6 +100,16 @@ class YepUserDefaults {
class func cleanAllUserDefaults() {
v1AccessToken.removeAllListeners()
userID.removeAllListeners()
nickname.removeAllListeners()
introduction.removeAllListeners()
avatarURLString.removeAllListeners()
badge.removeAllListeners()
pusherID.removeAllListeners()
areaCode.removeAllListeners()
mobile.removeAllListeners()
defaults.removeObjectForKey(v1AccessTokenKey)
defaults.removeObjectForKey(userIDKey)
defaults.removeObjectForKey(nicknameKey)
@@ -102,7 +117,6 @@ class YepUserDefaults {
defaults.removeObjectForKey(avatarURLStringKey)
defaults.removeObjectForKey(badgeKey)
defaults.removeObjectForKey(pusherIDKey)
defaults.removeObjectForKey(areaCodeKey)
defaults.removeObjectForKey(mobileKey)
}
@@ -53,6 +53,8 @@ class EditProfileViewController: UIViewController {
YepUserDefaults.nickname.removeListenerWithName(Listener.Nickname)
YepUserDefaults.introduction.removeListenerWithName(Listener.Introduction)
YepUserDefaults.badge.removeListenerWithName(Listener.Badge)
println("deinit EditProfileViewController")
}
override func viewDidLoad() {
@@ -290,6 +290,8 @@ class ProfileViewController: UIViewController {
YepUserDefaults.nickname.removeListenerWithName(Listener.Nickname)
YepUserDefaults.introduction.removeListenerWithName(Listener.Introduction)
println("deinit ProfileViewController")
}
override func preferredStatusBarStyle() -> UIStatusBarStyle {
@@ -305,6 +307,8 @@ class ProfileViewController: UIViewController {
title = NSLocalizedString("Profile", comment: "")
println("init ProfileViewController \(self)")
NSNotificationCenter.defaultCenter().addObserver(self, selector: "cleanForLogout", name: EditProfileViewController.Notification.Logout, object: nil)
if profileUser == nil {
@@ -44,6 +44,8 @@ class SettingsViewController: BaseViewController {
deinit {
YepUserDefaults.introduction.removeListenerWithName(Listener.Introduction)
println("deinit SettingsViewController")
}
override func viewDidLoad() {