iOS应用文件夹【永利澳门游戏网站】,开发者抱怨

苹果 iOS 5
系统扩张了五个新的体制——在设备容积空间欠缺的气象下自行灭亡高速缓存文件或不时目录的原委。这象征,假若您设备的体积快到尖峰了,应用存款和储蓄的繁多离线内容,包蕴随笔、杂志、图书、漫画以致别的数据都将被清空!假如客户需求,将只可以再度下载那一个剧情。关于苹果
iOS 5
的这一次“变革”,烦恼了成都百货上千开采者。新准绳实施之后,客户想利用离线数据将会有多数困难,並且也许有开辟者反应他们的应用通但是苹果接纳考察团队的考察。关于此番更新的商量特别“火爆”,当然也是一定絮乱,因为中间参杂了一点个难点,容易的综合就是:缓存和临时文件夹的语义难点;苹果相关文书的改造;应用考察被拒;iTunes
和 iCloud 到底备份了哪些内容;iOS 5 行为变化。

 1 - (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL
 2 {
 3     assert([[NSFileManager defaultManager] fileExistsAtPath: [URL path]]);
 4     NSError *error = nil;
 5     BOOL success = [URL setResourceValue: [NSNumber numberWithBool: YES]
 6      forKey: NSURLIsExcludedFromBackupKey error: &error];
 7     if(!success){
 8         NSLog(@"Error excluding %@ from backup %@", [URL lastPathComponent], error);
 9     }
10     return success;
11 }

永利澳门游戏网站 1

iOS的公文分类、存放路线及文件属性

iOS Data Storage Guidelines 和 “do not back up”文件属性

iOS
5有了iCloud后,Apple更新了数量存款和储蓄指点计划,以适应于iCloud存款和储蓄,相同的时候增添了“不要备份”文件属性,能够内定文件不备份和上传到iCloud

剪辑如下,供大家参照他事他说加以考察:

iOS 数据存储指引宗旨

iCloud满含了备份,会通过Wi-Fi每一天活动备份顾客iOS设备。app的home目录下的装有东西都会被备份,除了行使Bundle自己、缓存目录和temp目录。已购进的音乐、应用、书籍、Camera
Roll、设备安装、主显示屏、App组织、新闻、铃声也都会被备份。由于备份通过有线进行,并且为各种客商存款和储蓄在iCloud中,应用需最小化本人积累的数据数量。大文件会延长备份时间,并且消耗客户的可用iCloud空间。

为了保险备份尽恐怕连忙高效,应用存款和储蓄数据必要听从以下指点陈设:

1.
唯有那八个顾客生成的文书档案或其余数据,或然选用无法重复成立的多寡,才应该储存在/Documents目录下,而且会被机关备份到iCloud。

2.
足以另行下载或转移的多少,应该积存在/Library/Caches目录。举个例子数据库缓存文件、可下载文件(杂志、报纸、地图应用使用的数量)等都归属那少年老成类。

3.
有的时候使用的数据应该贮存在/tmp目录。就算这么些文件不会被iCloud备份,应用在利用完之后供给记得删除这几个文件,那样才不会持续攻陷顾客设备的半空中。

4.
施用”不要备份”属性来钦点那个要求保留在器材中的文件(就算是低存款和储蓄空间景况下)。那个能够再一次生成,但在低存款和储蓄空间时仍需保留,对使用符合规律运维有影
响,也许客商期待文件在离线时可用的文书,要求利用这本性情。无论哪个目录下的文本(包含Documents目录),都可以采取那么些脾气。那么些文件不会被
删除,也不会含有在客商的iCloud或iTunes备份中。由于这个文件平昔据有着客商设备的积累空间,应用有职分期限监督检查和删除那个文件。

iOS 5.0.1从头帮助”do not back
up”文件属性,允许开采者明确地钦点哪些文件应该被备份,哪些是地点缓存能够自行删除,哪些文件没有须要备份但不能去除。别的,对目录设置这几个性格,会堵住备份该目录和目录中的全部内容。

在乎”do not back up”属性只可以用于iOS
5.0.1随后版本。此前版本的选拔要求仓储数据到/Library/Caches目录技艺制止被备份。由于老的系统忽视这么些本性,你要求确定保障应用在具备iOS版本中,都依照上边的iOS
Data Storage Guidelines。

 

IOS5多了二个相比首要的功能iCloud,可是还要也现身八个主题材料,超多的APP都把非常大气的数额存在APP底下的Documents(/Documents )文件夹里面,那样苹果会reject掉你的APP的,除非您不再更新就径直把应用程式摆在APPStore,显明那样是不可行的,因为你这一个文件会一同到iCloud下面的。

缓存数据 

内容:可用以离线情状,可被重新下载重复生成,即时在离线时缺点和失误,应用本人也得以符合规律运维

路径:主目录/Library/Caches

属性:默认

处理:在积攒空间不足的情景下,会清空,
并且不会被电动备份到iTunes和iCloud中

读取Cache目录

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);  
NSString *path = [paths objectAtIndex:0];  
NSLog(@"%@", path);  

 

连串自带的.bundle财富束

类型自带的能源寄存在.bundle中那个能源只读不能写

 NSString *defaultDBPath = [[NSBundlemainBundle] resourcePath];

 

 

 

 

 

 

读取Library目录

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);  
NSString *path = [paths objectAtIndex:0];  
NSLog(@"%@", path);  

 

 1 #import <sys/xattr.h>
 2 - (BOOL)addSkipBackupAttributeToItemAtURL:(NSString*) path
 3 {    
 4    if (SYSTEM_VERSION_LESS_THAN(@"5.1"))
 5     {
 6        constchar* folderPath = [pathfileSystemRepresentation];
 7       const char* attrName ="com.apple.MobileBackup";
 8        u_int8_t attrValue = 1;
 9        intresult = setxattr(folderPath, attrName,&attrValue,sizeof(attrValue),0,0);
10        return result == 0;
11    } 
12    else
13     {
14     #ifndef __IPHONE_5_1
15     #define NSURLIsExcludedFromBackupKey @"NSURLIsExcludedFromBackupKey"
16     #endif
17        NSError *error = nil;
18        NSURL* url = [NSURLfileURLWithPath:path];
19        BOOLsuccess = [url setResourceValue:[NSNumbernumberWithBool:YES]
20                                forKey:NSURLIsExcludedFromBackupKey 
21                                 error: &error];
22        return success;
23     }
24 }

发表评论

电子邮件地址不会被公开。 必填项已用*标注