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直接打