你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> IOS NSUserDefaults-輕量級本地數據存儲

IOS NSUserDefaults-輕量級本地數據存儲

編輯:IOS開發綜合

IOS NSUserDefaults-輕量級本地數據存儲

IOS 針對用戶數據持久化處理提供了多種處理方式:NSUserDefaults、plist 以及 sqlite3 數據庫 都是很不錯的選擇!

NSUserDefaults 是一種輕量級本地數據存儲,操作方便,但僅支持Bool、Float、NSInteger、Object、Double、Url 這六種數據類型的存儲

NSUserDefaults 提供了添加、讀取以及移除等方法,供開發者調用,具體示例如下:

GNSUserDefaults.h

#import 
/**
 *  GNSUserDefaults
 *  輕量級本地數據存儲(NSUserDefaults)
 */
@interface GNSUserDefaults : NSObject


/**
 *  get_userDefaults
 *  獲取並初始化 NSUserDefaults 對象
 *
 *  @return NSUserDefaults
 */
+(NSUserDefaults *) get_userDefaults;


#pragma mark-Class UserDefaults 保存數據(僅支持六種類型:Bool、Float、NSInteger、Object、Double、Url)
/**
 *  saveUserDefaults_Bool
 *  保存數據
 *
 *  @param objValue BOOL 保存的數據值
 *  @param objKey   NSString 保存的數據鍵
 */
+(void) saveUserDefaults_Bool:(BOOL) objValue objKey:(NSString *)objKey;

/**
 *  saveUserDefaults_Float
 *  保存數據
 *
 *  @param objValue float 保存的數據值
 *  @param objKey   NSString 保存的數據鍵
 */
+(void) saveUserDefaults_Float:(float) objValue objKey:(NSString *)objKey;

/**
 *  saveUserDefaults_Integer
 *  保存數據
 *
 *  @param objValue float 保存的數據值
 *  @param objKey   NSString 保存的數據鍵
 */
+(void) saveUserDefaults_Integer:(NSInteger) objValue objKey:(NSString *)objKey;

/**
 *  saveUserDefaults_NSObject
 *  保存數據
 *
 *  @param objValue NSObject 保存的數據值
 *  @param objKey   NSString 保存的數據鍵
 */
+(void) saveUserDefaults_NSObject:(NSObject *) objValue objKey:(NSString *)objKey;

/**
 *  saveUserDefaults_Double
 *  保存數據
 *
 *  @param objValue double 保存的數據值
 *  @param objKey   NSString 保存的數據鍵
 */
+(void) saveUserDefaults_Double:(double) objValue objKey:(NSString *)objKey;

/**
 *  saveUserDefaults_NSURL
 *  保存數據
 *
 *  @param objValue NSURL 保存的數據值
 *  @param objKey   NSString 保存的數據鍵
 */
+(void) saveUserDefaults_NSURL:(NSURL *) objValue objKey:(NSString *)objKey;


#pragma mark-Class 讀取 UserDefaults 數據(僅支持六中類型:Bool、Float、NSInteger、Object(id)、Double、Url)
/**
 *  readUserDefaults_Bool
 *  讀取數據
 *
 *  @param objKey NSString 讀取的鍵名
 *
 *  @return NSObject 鍵對應值
 */
+(BOOL) readUserDefaults_Bool:(NSString *) objKey;

/**
 *  readUserDefaults_Float
 *  讀取數據
 *
 *  @param objKey NSString 讀取的鍵名
 *
 *  @return NSObject 鍵對應值
 */
+(float) readUserDefaults_Float:(NSString *) objKey;

/**
 *  readUserDefaults_Integer
 *  讀取數據
 *
 *  @param objKey NSString 讀取的鍵名
 *
 *  @return NSObject 鍵對應值
 */
+(NSInteger) readUserDefaults_Integer:(NSString *) objKey;

/**
 *  readUserDefaults_Object
 *  讀取數據
 *
 *  @param objKey NSString 讀取的鍵名
 *
 *  @return NSObject 鍵對應值
 */
+(id) readUserDefaults_Object:(NSString *) objKey;

/**
 *  readUserDefaults_Double
 *  讀取數據
 *
 *  @param objKey NSString 讀取的鍵名
 *
 *  @return NSObject 鍵對應值
 */
+(double) readUserDefaults_Double:(NSString *) objKey;

/**
 *  readUserDefaults_URl
 *  讀取數據
 *
 *  @param objKey NSString 讀取的鍵名
 *
 *  @return NSObject 鍵對應值
 */
+(NSURL *) readUserDefaults_URl:(NSString *) objKey;
@end

GNSUserDefaults.m

 

#import GNSUserDefaults.h

/**
 *  GNSUserDefaults
 *  輕量級本地數據存儲(NSUserDefaults)
 */
@implementation GNSUserDefaults

#pragma mark-Class static variable
static NSUserDefaults* userDefaults;


#pragma mark-Class method
+(NSUserDefaults *) get_userDefaults{
    if (!userDefaults)
        userDefaults = [NSUserDefaults standardUserDefaults];

    return userDefaults;
}


#pragma mark-Class UserDefaults 保存數據(僅支持六種類型:Bool、Float、NSInteger、Object、Double、Url)
+(void) saveUserDefaults_Bool:(BOOL) objValue objKey:(NSString *)objKey{
    [[GNSUserDefaults get_userDefaults] setBool:objValue forKey:objKey];

    //這裡建議同步存儲到磁盤中,但是不是必須的
    [[GNSUserDefaults get_userDefaults] synchronize];
}


+(void) saveUserDefaults_Float:(float) objValue objKey:(NSString *)objKey{
    [[GNSUserDefaults get_userDefaults] setFloat:objValue forKey:objKey];

    //這裡建議同步存儲到磁盤中,但是不是必須的
    [[GNSUserDefaults get_userDefaults] synchronize];
}


+(void) saveUserDefaults_Integer:(NSInteger) objValue objKey:(NSString *)objKey{
    [[GNSUserDefaults get_userDefaults] setInteger:objValue forKey:objKey];

    //這裡建議同步存儲到磁盤中,但是不是必須的
    [[GNSUserDefaults get_userDefaults] synchronize];
}


+(void) saveUserDefaults_NSObject:(NSObject*) objValue objKey:(NSString *)objKey{
    [[GNSUserDefaults get_userDefaults] setObject:objValue forKey:objKey];

    //這裡建議同步存儲到磁盤中,但是不是必須的
    [[GNSUserDefaults get_userDefaults] synchronize];
}


+(void) saveUserDefaults_Double:(double) objValue objKey:(NSString *)objKey{
    [[GNSUserDefaults get_userDefaults] setDouble:objValue forKey:objKey];

    //這裡建議同步存儲到磁盤中,但是不是必須的
    [[GNSUserDefaults get_userDefaults] synchronize];
}


+(void) saveUserDefaults_NSURL:(NSURL *) objValue objKey:(NSString *)objKey{
     [[GNSUserDefaults get_userDefaults] setURL:objValue forKey:objKey];

     //這裡建議同步存儲到磁盤中,但是不是必須的
     [[GNSUserDefaults get_userDefaults] synchronize];
}


#pragma mark-Class 讀取 UserDefaults 數據(僅支持六中類型:Bool、Float、NSInteger、Object(id)、Double、Url)
+(BOOL) readUserDefaults_Bool:(NSString *) objKey{
    return [[GNSUserDefaults get_userDefaults] boolForKey:objKey];
}


+(float) readUserDefaults_Float:(NSString *) objKey{
    return [[GNSUserDefaults get_userDefaults] floatForKey:objKey];
}


+(NSInteger) readUserDefaults_Integer:(NSString *) objKey{
    return [[GNSUserDefaults get_userDefaults] integerForKey:objKey];
}


+(id) readUserDefaults_Object:(NSString *) objKey{
    return [[GNSUserDefaults get_userDefaults] objectForKey:objKey];
}


+(double) readUserDefaults_Double:(NSString *) objKey{
    return [[GNSUserDefaults get_userDefaults] doubleForKey:objKey];
}


+(NSURL *) readUserDefaults_URl:(NSString *) objKey{
    return [[GNSUserDefaults get_userDefaults] URLForKey:objKey];
}
@end

移除對象:removeObjectForKey

 

 

 

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved