iOS中的文件存放法則

Apple對應(yīng)用程序放在沙盒中的文件有嚴(yán)格要求,主要有:

存放位置要求

用戶創(chuàng)建的文件,(程序不能自動生成的),需要放在Documents\

緩存文件,需要放在Library\Caches\

臨時文件,放在tmp\,而且要注意清空

文件備份

這個可以通過設(shè)置文件的一個屬性來控制,具體見下面代碼

除了用戶創(chuàng)建和編輯的文件,不允許保存到iTunes和iCloud

用戶升級程序之后,所有Documents\和Library\的文件會自動復(fù)制到新的bundle中去

下面的代碼是如何設(shè)置屬性,讓apple在備份的時候,不會包含這個文件。

對于iOS版本5.1之前和之后的處理方式是不一樣的。

+(BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL

{

if (![[NSFileManager defaultManager] fileExistsAtPath: [URL path]]) {

return NO;

}

if ([[UIDevice currentDevice].systemVersion floatValue] >= 5.1) {

NSError *error = nil;

BOOL success = [URL setResourceValue: [NSNumber numberWithBool: YES]

forKey: NSURLIsExcludedFromBackupKey error: &error];

if(!success){

NSLog(@"Error excluding %@ from backup %@", [URL lastPathComponent], error);

}

return success;

} else {

const char* filePath = [[URL path] fileSystemRepresentation];

const char* attrName = "com.apple.MobileBackup";

u_int8_t attrValue = 1;

int result = setxattr(filePath, attrName, &attrValue, sizeof(attrValue), 0, 0);

return result == 0;

}

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • *面試心聲:其實(shí)這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個offer,總結(jié)起來就是把...
    Dove_iOS閱讀 27,653評論 30 472
  • 沙盒 Plist Preference偏好設(shè)置 NSKeyedArchiver歸檔 / NSKeyedUnarch...
    追風(fēng)者366閱讀 3,607評論 0 6
  • 一、iOS中的沙盒機(jī)制 iOS應(yīng)用程序只能對自己創(chuàng)建的文件系統(tǒng)讀取文件,這個獨(dú)立、封閉、安全的空間,叫做沙盒。它一...
    tzhtodd閱讀 1,349評論 0 2
  • iOS開發(fā)-文件管理(一) 一、iOS中的沙盒機(jī)制 iOS應(yīng)用程序只能對自己創(chuàng)建的文件系統(tǒng)讀取文件,這個獨(dú)立、封閉...
    MacShare閱讀 1,871評論 0 6
  • 循環(huán)引用:http://ios.jobbole.com/82077/類別的作用功能:1.擴(kuò)充現(xiàn)有類的功能2.對現(xiàn)有...
    得一切從簡閱讀 585評論 0 1

友情鏈接更多精彩內(nèi)容