ios沙盒存储
㈠ ios nsmutablearray 可以存到沙盒吗
if (cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellid]; cell.textLabel.text = [_files objectAtIndex:indexPath.row]; } return cell; 因为你只有分配新单元时才设置单元标签text,试试这样: if (cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellid]; } cell.textLabel.text = [_files objectAtIndex:indexPath.row]; return cell; 同样的代码,不过我删除了设置单元文本那行,这样在你创建新的或者重新使用cell都能执行。
㈡ 在ios沙盒机制下下面哪个文件夹是用来存放数据的
IOS沙盒机制(SandBox)种安全体系规定应用程序能该应用创建文件夹内读取文件访问其内容所非代码文件都保存比图片、声音、属性列表文本文件等
1.每应用程序都自沙盒内
2.能随意跨越自沙盒访问别应用程序沙盒内容
3.应用程序向外请求或接收数据都需要经权限认证
查看模拟器沙盒文件夹Mac电脑存储位置首先文件夹隐藏所要先些文件显示打命令行:
显示Mac隐藏文件命令:defaults write com.apple.finder AppleShowAllFiles -bool true
隐藏Mac隐藏文件命令:defaults write com.apple.finder AppleShowAllFiles -bool false
重新启Finder点击屏幕左角苹标志——强制退——选择Finder点击重新启候重新打Finder看隐藏文件
种比较简单办直接点击Finder图标右键——前往文件夹——输入/Users/your username/Library/Application Support/iPhone Simulator/ ,确认your username本机用户名
㈢ iOS怎么获取并移除沙盒中文件夹下的所有文件
如何查看、管理ios模拟器上的文件? ios模拟器的路径-打开沙盒路径 1、模拟器沙盒目录 文件都在个人用户名文件夹下的一个隐藏文件夹里,中文叫资源库,他的目录其实是Library。 1.1 方法1、可以设置显示隐藏文件,然后在Finder下直接打开。
㈣ ios怎样取得沙盒中的具体的文件
在制作应用的时候经常用到沙盒路径 存取文件
路径的说明
Documents:应用中用户数据可以放在这里,iTunes备份和恢复的时候会包括此目录
tmp:存放临时文件,iTunes不会备份和恢复此目录,此目录下文件可能会在应用退出后删除
Library/Caches:存放缓存文件,iTunes不会备份此目录,此目录下文件不会在应用退出删除
用代码来获取Documents用户数据路径
[(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]
用代码来获取Library/Caches缓存目录(配置文件以及用户缓存存放位置)
(NSLibraryDirectory, NSUserDomainMask, YES);
用代码获取tmp临时目录
[NSHomeDirectory() stringByAppendingFormat:@"/tmp"];//在系统主目录下查找tmp文件夹
㈤ ios 开发使用代码创建文件智能放在沙盒吗,除了沙盒能放在工程目录下吗
NSString *home = NSHomeDirectory();//获取沙盒路径
//拼接Documents路径
//NSString *docPath = [home stringByAppendingStringt:@"/Documents"];
NSString *docPath = [home :@"Documents"];
NSString *filePath = [docPath :@"data.plist"];
NSArray *array = @[@1,@2,@"123"];
//只有具备writeToFile的对象才能使用plist存储,NSArray
[array writeToFile:filePath atomically:YES];
主要是获取路径,然后把文件写到这个路径里就好了
㈥ ios 怎么判断沙盒文件夹路径是否存在
NSFileManager *fileManager = [NSFileManager defaultManager];
//Get documents directory
NSArray *directoryPaths =
(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectoryPath = [directoryPaths objectAtIndex:0];
if ([fileManager fileExistsAtPath:@""]==YES) {
NSLog(@"File exists");
}
㈦ ios沙盒机制下 哪个文件存放数据
IOS 从Resource文件夹下Copy文件到沙盒
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
self.title = @"拷贝文件到Sandbox";
//文件类型
NSString * docPath = [[NSBundle mainBundle] pathForResource:@"save1" ofType:@"dat"];
// 沙盒Documents目录
// NSString * appDir = [(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
// 沙盒Library目录
NSString * appDir = [(NSLibraryDirectory, NSUserDomainMask, YES) lastObject];
//appLib Library/Caches目录
NSString *appLib = [appDir stringByAppendingString:@"/Caches"];
BOOL filesPresent = [self MissingFile:docPath toPath:appLib];
if (filesPresent) {
NSLog(@"OK");
}
else
{
NSLog(@"NO");
}
// 创建文件夹
NSString *createDir = [NSHomeDirectory() stringByAppendingString:@"/test"];
[self createFolder:createDir];
// 把文件拷贝到Test目录
BOOL filesPresent1 = [self MissingFile:docPath toPath:createDir];
if (filesPresent1) {
NSLog(@"OK");
}
else
{
NSLog(@"NO");
}
}
/**
* @brief 把Resource文件夹下的save1.dat拷贝到沙盒
*
* @param sourcePath Resource文件路径
* @param toPath 把文件拷贝到XXX文件夹
*
* @return BOOL
*/
- (BOOL)MissingFile:(NSString *)sourcePath toPath:(NSString *)toPath
{
BOOL retVal = YES; // If the file already exists, we'll return success…
NSString * finalLocation = [toPath :[sourcePath lastPathComponent]];
if (![[NSFileManager defaultManager] fileExistsAtPath:finalLocation])
{
retVal = [[NSFileManager defaultManager] ItemAtPath:sourcePath toPath:finalLocation error:NULL];
}
return retVal;
}
/**
* @brief 创建文件夹
*
* @param createDir 创建文件夹路径
*/
- (void)createFolder:(NSString *)createDir
{
BOOL isDir = NO;
NSFileManager *fileManager = [NSFileManager defaultManager];
BOOL existed = [fileManager fileExistsAtPath:createDir isDirectory:&isDir];
if ( !(isDir == YES && existed == YES) )
{
[fileManager createDirectoryAtPath:createDir withIntermediateDirectories:YES attributes:nil error:nil];
}
}
㈧ 为什么ios中的沙盒路径找不到文件
1、模拟器沙盒目录
文件都在个人用户名文件夹下的一个隐藏文件夹里,中文叫资源库,他的目录其实是Library。
因为应用是在沙箱(sandbox)中的,在文件读写权限上受到限制,只能在几个目录下读写文件:
Documents:应用中用户数据可以放在这里,iTunes备份和恢复的时候会包括此目录
tmp:存放临时文件,iTunes不会备份和恢复此目录,此目录下文件可能会在应用退出后删除
Library/Caches:存放缓存文件,iTunes不会备份此目录,此目录下文件不会在应用退出删除
iTunes在与iPhone同步时,备份所有的Documents和Library文件。
iPhone在重启时,会丢弃所有的tmp文件。
查看方法:
方法1、可以设置显示隐藏文件,然后在Finder下直接打开。设置查看隐藏文件的方法如下:打开终端,输入命名
(1)显示Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool true
(2)隐藏Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool false
(3)输完单击Enter键,退出终端,重新启动Finder就可以了 重启Finder:鼠标单击窗口左上角的苹果标志-->强制退出-->Finder-->
现在能看到资源库文件夹了。
打开资源库后找到/Application Support/iPhone Simulator/文件夹。这里面就是模拟器的各个程序的沙盒目录了。
方法2、这种方法更方便,在Finder上点->前往->前往文件夹,输入/Users/username/Library/Application Support/iPhone Simulator/ 前往。
username这里写用户名。
代码查看目录:
NSString *path = NSHomeDirectory();//主目录
NSLog(@"NSHomeDirectory:%@",path);
NSString *userName = NSUserName();//与上面相同
NSString *rootPath = NSHomeDirectoryForUser(userName);
NSLog(@"NSHomeDirectoryForUser:%@",rootPath);
NSArray *paths = (NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory=[paths objectAtIndex:0];//Documents目录
NSLog(@"NSDocumentDirectory:%@",documentsDirectory);
结果如下:
2013-09-03 20:31:27.210 ios那啥[8383:c07] NSHomeDirectory:/Users/wmm/Library/Application Support/iPhone Simulator/6.1/Applications/D803DBD2-9CB2-4D18-9152-6E9398EFF5DB2013-09-03 20:31:27.210 ios那啥[8383:c07] NSHomeDirectoryForUser:/Users/wmm/Library/Application Support/iPhone Simulator/6.1/Applications/D803DBD2-9CB2-4D18-9152-6E9398EFF5DB2013-09-03 20:31:27.211 ios那啥[8383:c07] NSDocumentDirectory:/Users/wmm/Library/Application Support/iPhone Simulator/6.1/Applications/D803DBD2-9CB2-4D18-9152-6E9398EFF5DB/Documents 自定义类返回各目录路径:
#import <Foundation/Foundation.h>
@interface ICSandboxHelper : NSObject
+ (NSString *)homePath; // 程序主目录,可见子目录(3个):Documents、Library、tmp
+ (NSString *)appPath; // 程序目录,不能存任何东西
+ (NSString *)docPath; // 文档目录,需要ITUNES同步备份的数据存这里,可存放用户数据
+ (NSString *)libPrefPath; // 配置目录,配置文件存这里
+ (NSString *)libCachePath; // 缓存目录,系统永远不会删除这里的文件,ITUNES会删除
+ (NSString *)tmpPath; // 临时缓存目录,APP退出后,系统可能会删除这里的内容
+ (BOOL)hasLive:(NSString *)path; //判断目录是否存在,不存在则创建
#import "ICSandboxHelper.h"
@implementation ICSandboxHelper
+ (NSString *)homePath{
return NSHomeDirectory();
}
+ (NSString *)appPath
{
NSArray * paths = (NSApplicationDirectory, NSUserDomainMask, YES);
return [paths objectAtIndex:0];
}
+ (NSString *)docPath
{
NSArray * paths = (NSDocumentDirectory, NSUserDomainMask, YES);
return [paths objectAtIndex:0];
}
+ (NSString *)libPrefPath
{
NSArray * paths = (NSLibraryDirectory, NSUserDomainMask, YES);
return [[paths objectAtIndex:0] stringByAppendingFormat:@"/Preference"];
}
+ (NSString *)libCachePath
{
NSArray * paths = (NSLibraryDirectory, NSUserDomainMask, YES);
return [[paths objectAtIndex:0] stringByAppendingFormat:@"/Caches"];
}
+ (NSString *)tmpPath
{return [NSHomeDirectory() stringByAppendingFormat:@"/tmp"];
}
+ (BOOL)hasLive:(NSString *)path
{
if ( NO == [[NSFileManager defaultManager] fileExistsAtPath:path] )
{
return [[NSFileManager defaultManager] createDirectoryAtPath:path
withIntermediateDirectories:YES
attributes:nil
error:NULL];
}
return NO;
}
㈨ ios 存储沙盒偏好设置和其他的区别
Xcode6沙盒路径与Xcode5沙盒路径对比:
(1)Xcode5中沙盒的路径为:/Users/用户名/Library/Application
Support/iPhone Simulator/7.1-64/Applications/对应应用程序文件夹
通过以上可以看出通过NSUserDefault创建的plist文件真正存放的位置发生了变化,成了在模拟器的资料库文件夹下的Preferences文件夹下,也就是说当我们在删除模拟器中的应用程序后,真正的plist文件是不会被删除的,如果需要清除偏好设置文件需要手动到对应的目录下删除!当然这只是在模拟器的情况下,真机上应该是不会出现这种问题的,具体情况可以尝试下。
㈩ 在ios沙盒机制下,哪个文件用来存放数据
何查看、管理ios模拟器文件 ios模拟器路径-打沙盒路径 1、模拟器沙盒目录 文件都用户名文件夹隐藏文件夹文叫资源库目录其实Library 1.1 1、设置显示隐藏文件Finder直接打