macOS App 保存數(shù)據(jù)

1. 保存文本數(shù)據(jù)問題

Mac端的App,需要保存一些文本數(shù)據(jù)溉卓,嘗試了幾種方式皮迟,記錄一下曲折。

  1. 保存到本 App 目錄下桑寨,升級(jí)時(shí)可能會(huì)丟失數(shù)據(jù)伏尼。直接覆蓋原App方式。無(wú)法測(cè)試升級(jí)方式尉尾,所以不是很確定爆阶。
  2. 保存到 Documents (文稿)目錄下,可以保證升級(jí)問題沙咏,但是容易被用戶刪除或修改掉辨图。
  3. 保存到 Application Support,必須要是完整的文件路徑肢藐。

比如完整路徑是 /Users/zzz/Library/Application Support 而不是 ~/Library/Application Support

最初是準(zhǔn)備保存到 Application Support 文件夾中的故河,但剛開始取到的路徑是 ~/Library/Application Support 這樣的,結(jié)果就是無(wú)法創(chuàng)建文件夾窖壕,Console 提示 You don't have premission to save file in this folder 后來(lái)上網(wǎng)查詢忧勿,幾經(jīng)曲折,才發(fā)現(xiàn)這個(gè)不是完整路徑瞻讽。

取得完整路徑有以下方式鸳吸,可能有更多,暫時(shí)只找到這三種速勇。

  1. NSSearchPathForDirectoriesInDomains 最后一個(gè)參數(shù)晌砾,表示是否展開完整路徑,傳YES烦磁,得到的文件路徑就是完整的养匈。
NSArray *arr = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES);
  1. 用 stringByExpandingTildeInPath 方法來(lái)展開不完整路徑,也可以得到完整路徑都伪。如果不確定得到的文件路徑是否完整呕乎,可以用 stringByExpandingTildeInPath 這個(gè)方法再展開一次。
NSArray *arr = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, NO);
if (arr && arr.count > 0) {
    return [arr.firstObject stringByExpandingTildeInPath];
} 
  1. NSFileManager 取到的路徑也是完整的
NSFileManager *fileMan = [NSFileManager defaultManager];
NSArray *urls = [fileMan URLsForDirectory:NSApplicationSupportDirectory inDomains:NSUserDomainMask];  

2. 保存 NSImage 到文件

- (NSString *)saveImage:(NSImage *)image 
{    
    [image lockFocus];
    NSBitmapImageRep *bits = [[[NSBitmapImageRep alloc] initWithFocusedViewRect:NSMakeRect(0, 0, size.width, size.height)] autorelease];    
    [image unlockFocus];
    
    NSDictionary *imageProps = [NSDictionary dictionaryWithObject:[NSNumber numberWithFloat:0.9] forKey:NSImageCompressionFactor];
    
    NSData *imageData = [bits representationUsingType:NSJPEGFileType properties:imageProps];
    [imageData writeToFile:appFile atomically:YES];
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末陨晶,一起剝皮案震驚了整個(gè)濱河市猬仁,隨后出現(xiàn)的幾起案子帝璧,更是在濱河造成了極大的恐慌,老刑警劉巖湿刽,帶你破解...
    沈念sama閱讀 211,743評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件的烁,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡诈闺,警方通過(guò)查閱死者的電腦和手機(jī)渴庆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)雅镊,“玉大人襟雷,你說(shuō)我怎么就攤上這事±齑” “怎么了嗤军?”我有些...
    開封第一講書人閱讀 157,285評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)晃危。 經(jīng)常有香客問我叙赚,道長(zhǎng),這世上最難降的妖魔是什么僚饭? 我笑而不...
    開封第一講書人閱讀 56,485評(píng)論 1 283
  • 正文 為了忘掉前任震叮,我火速辦了婚禮,結(jié)果婚禮上鳍鸵,老公的妹妹穿的比我還像新娘苇瓣。我一直安慰自己,他們只是感情好偿乖,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評(píng)論 6 386
  • 文/花漫 我一把揭開白布击罪。 她就那樣靜靜地躺著,像睡著了一般贪薪。 火紅的嫁衣襯著肌膚如雪媳禁。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,821評(píng)論 1 290
  • 那天画切,我揣著相機(jī)與錄音竣稽,去河邊找鬼。 笑死霍弹,一個(gè)胖子當(dāng)著我的面吹牛毫别,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播典格,決...
    沈念sama閱讀 38,960評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼岛宦,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了耍缴?” 一聲冷哼從身側(cè)響起恋博,我...
    開封第一講書人閱讀 37,719評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤齐佳,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后债沮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,186評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡本鸣,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評(píng)論 2 327
  • 正文 我和宋清朗相戀三年疫衩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片荣德。...
    茶點(diǎn)故事閱讀 38,650評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡闷煤,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出涮瞻,到底是詐尸還是另有隱情鲤拿,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布署咽,位于F島的核電站近顷,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏宁否。R本人自食惡果不足惜窒升,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望慕匠。 院中可真熱鬧饱须,春花似錦、人聲如沸台谊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)锅铅。三九已至酪呻,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間狠角,已是汗流浹背号杠。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留丰歌,地道東北人姨蟋。 一個(gè)月前我還...
    沈念sama閱讀 46,370評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像立帖,于是被迫代替她去往敵國(guó)和親眼溶。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評(píng)論 2 349

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

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,777評(píng)論 25 707
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理晓勇,服務(wù)發(fā)現(xiàn)堂飞,斷路器灌旧,智...
    卡卡羅2017閱讀 134,633評(píng)論 18 139
  • 覆轍韶光數(shù)幾度春秋 縱觀群書慕圣賢風(fēng)流 篆墨行文若仙靈佐佑 巧筆漫有驚雷膾炙人口 未覺流年分寒暑夜晝 紅塵滄桑若白...
    覺智師兄閱讀 1,853評(píng)論 0 0
  • 我今年24歲枢泰,我總是在想,如果我真的那么『不普通铝噩、不平凡』衡蚂,我應(yīng)該早就在什么方面露出端倪了。 寫博客和日記十多年了...
    鎮(zhèn)雷閱讀 1,268評(píng)論 9 21