NSHomeDirectory()簡述

對于app存儲方式有多種萌狂,在這里我們先介紹NSCoding,也就是解檔歸檔灾搏,這種方式是將我們的數(shù)據(jù)存儲在沙盒中的Documents中疼鸟。
首先我們利用NSHomeDirectory來獲取應(yīng)用所存儲的目錄,然后在拼接“Documents”就是我們所用的NSCoding技術(shù)需要準(zhǔn)備的存和取的路徑柏蘑。而實(shí)際上我們可以直接采用[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject]來獲取路徑幸冻。

1.NSHomeDirectory
NSString *path1 = NSHomeDirectory();
NSLog(@"path1:%@", path1);path1:/Users/yuanjun/Library/Application Support/iPhone Simulator/4.2/Applications/172DB70A-145B-4575-A31E-D501AC6EA830


2.NSSearchPathForDirectoriesInDomains
NSString *path2 = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
NSLog(@"path2:%@", path2);path2:/Users/yuanjun/Library/Application Support/iPhone Simulator/4.2/Applications/172DB70A-145B-4575-A31E-D501AC6EA830/Library/Caches


NSString *docPath =  [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSLog(@"path3:%@", path3);path3:/Users/yuanjun/Library/Application Support/iPhone Simulator/4.2/Applications/172DB70A-145B-4575-A31E-D501AC6EA830/Documents

在獲取到路徑之后我們需要將所存儲的對象遵循協(xié)議NSCoding,之后才可以使用解檔咳焚、歸檔來獲取以及存儲數(shù)據(jù)洽损。

.h文件
@interface YZPerson : NSObject<NSCoding>
.m文件
@implementation YZPerson
// 當(dāng)將一個自定義對象保存到文件的時候就會調(diào)用該方法
// 在該方法中說明如何存儲自定義對象的屬性
// 也就說在該方法中說清楚存儲自定義對象的哪些屬性
// 歸檔
- (void)encodeWithCoder:(NSCoder *)aCoder
{
    [aCoder encodeObject:self.name forKey:@"name"];
    [aCoder encodeInteger:self.age forKey:@"age"];
    [aCoder encodeFloat:self.height forKey:@"height"];
}

// 當(dāng)從文件中讀取一個對象的時候就會調(diào)用該方法
// 在該方法中說明如何讀取保存在文件中的對象
// 也就是說在該方法中說清楚怎么讀取文件中的對象
// 解檔
- (instancetype)initWithCoder:(NSCoder *)aDecoder
{
    if (self = [super init]) {
        self.name = [aDecoder decodeObjectForKey:@"name"];
        self.age = [aDecoder decodeIntegerForKey:@"age"];
        self.height = [aDecoder decodeFloatForKey:@"height"];
    }
    return self;
}

在繼承YZPerson的類YZStudent中實(shí)現(xiàn)解檔和歸檔,只需要重寫那兩個方法就可以了革半,并且在.h文件中不需要再次遵循NSCoding協(xié)議

.m文件
@implementation YZStudent
// 在子類中重寫那兩個方法碑定,只添加一個屬性的歸檔,解檔
- (void)encodeWithCoder:(NSCoder *)aCoder
{
    [super encodeWithCoder:aCoder];
    
    [aCoder encodeFloat:self.weight forKey:@"weight"];
}

- (instancetype)initWithCoder:(NSCoder *)aDecoder
{
    if (self = [super initWithCoder:aDecoder]) {
        self.weight = [aDecoder decodeFloatForKey:@"weight"];
    }
    return self;
}
@end

在外部實(shí)現(xiàn)存儲以及讀取時

存儲
NSString *stuPath = [docPath stringByAppendingString:@"student.student"];
    // 3. 將自定義的對象保存到文件中
[NSKeyedArchiver archiveRootObject:person toFile:path];

讀取
NSString *stuPath = [dirPath stringByAppendingString:@"student.student"];
YZStudent *student = [NSKeyedUnarchiver unarchiveObjectWithFile:stuPath ];
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末又官,一起剝皮案震驚了整個濱河市延刘,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌六敬,老刑警劉巖碘赖,帶你破解...
    沈念sama閱讀 211,376評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異外构,居然都是意外死亡普泡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評論 2 385
  • 文/潘曉璐 我一進(jìn)店門审编,熙熙樓的掌柜王于貴愁眉苦臉地迎上來撼班,“玉大人,你說我怎么就攤上這事垒酬∨猷遥” “怎么了眯亦?”我有些...
    開封第一講書人閱讀 156,966評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長般码。 經(jīng)常有香客問我妻率,道長,這世上最難降的妖魔是什么板祝? 我笑而不...
    開封第一講書人閱讀 56,432評論 1 283
  • 正文 為了忘掉前任宫静,我火速辦了婚禮,結(jié)果婚禮上券时,老公的妹妹穿的比我還像新娘孤里。我一直安慰自己,他們只是感情好橘洞,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,519評論 6 385
  • 文/花漫 我一把揭開白布捌袜。 她就那樣靜靜地躺著,像睡著了一般炸枣。 火紅的嫁衣襯著肌膚如雪虏等。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,792評論 1 290
  • 那天适肠,我揣著相機(jī)與錄音霍衫,去河邊找鬼。 笑死侯养,一個胖子當(dāng)著我的面吹牛敦跌,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播逛揩,決...
    沈念sama閱讀 38,933評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼柠傍,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了辩稽?” 一聲冷哼從身側(cè)響起惧笛,我...
    開封第一講書人閱讀 37,701評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎搂誉,沒想到半個月后徐紧,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,143評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡炭懊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,488評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了拂檩。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片侮腹。...
    茶點(diǎn)故事閱讀 38,626評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖稻励,靈堂內(nèi)的尸體忽然破棺而出父阻,到底是詐尸還是另有隱情愈涩,我是刑警寧澤,帶...
    沈念sama閱讀 34,292評論 4 329
  • 正文 年R本政府宣布加矛,位于F島的核電站履婉,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏斟览。R本人自食惡果不足惜毁腿,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,896評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望苛茂。 院中可真熱鬧已烤,春花似錦、人聲如沸妓羊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽躁绸。三九已至裕循,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間净刮,已是汗流浹背费韭。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留庭瑰,地道東北人星持。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像弹灭,于是被迫代替她去往敵國和親督暂。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,494評論 2 348

推薦閱讀更多精彩內(nèi)容