ios文件目录路径及NSUserDefaults

本文介绍如何在iOS应用中获取各种类型的文件路径,包括家目录、Documents目录、Caches目录及临时目录等,并展示了如何利用NSBundle获取资源文件路径。此外,还详细介绍了NSUserDefaults的使用方法,包括数据的保存和读取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,获取家目录路径的函数:  
NSString *homeDir = NSHomeDirectory();  
2,获取Documents目录路径的方法:  
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  
NSString *docDir = [paths objectAtIndex:0];  
3,获取Caches目录路径的方法:  
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);  
NSString *cachesDir = [paths objectAtIndex:0];  
4,获取tmp目录路径的方法:  
NSString *tmpDir = NSTemporaryDirectory();  
5,获取应用程序程序包中资源文件路径的方法:  
例如获取程序包中一个图片资源(apple.png)路径的方法:  
NSString *imagePath = [[NSBundle mainBundle] pathForResource:@”apple” ofType:@”png”];  
UIImage *appleImage = [[UIImage alloc] initWithContentsOfFile:imagePath];  
代码中的mainBundle类方法用于返回一个代表应用程序包的对象。 

NSFileManager* fm=[NSFileManager defaultManager];  
if(![fm fileExistsAtPath:[self dataFilePath]]){  
  
//下面是对该文件进行制定路径的保存  
[fm createDirectoryAtPath:[self dataFilePath] withIntermediateDirectories:YES attributes:nil error:nil];  
  
//取得一个目录下得所有文件名  
NSArray *files = [fm subpathsAtPath: [self dataFilePath] ];  
  
//读取某个文件  
NSData *data = [fm contentsAtPath:[self dataFilePath]];  
  
//或者  
NSData *data = [NSData dataWithContentOfPath:[self dataFilePath]];  


2.NSUserDefaults

NSUserDefaults适合存储轻量级的本地数据,比如要保存一个登陆界面的数据,用户名、密码之类的,个人觉得使用NSUserDefaults是首选。下次再登陆的时候就可以直接从NSUserDefaults里面读取上次登陆的信息咯。

因为如果使用自己建立的plist文件什么的,还得自己显示创建文件,读取文件,很麻烦,而是用NSUserDefaults则不用管这些东西,就像读字符串一样,直接读取就可以了。

NSUserDefaults支持的数据格式有:NSNumber(Integer、Float、Double),NSString,NSDate,NSArray,NSDictionary,BOOL类型

//保存数据到NSUserDefaults  
-(void)saveNSUserDefaults  
{  
    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];  
    [userDefaults setObject:@"123" forKey:@"num"];      
    [userDefaults synchronize];      
}  
  
//从NSUserDefaults中读取数据  
-(void)readNSUserDefaults  
{  
    NSUserDefaults *userDefaultes = [NSUserDefaults standardUserDefaults];  
    //读取整型int类型的数据  
    NSString *num = [userDefaultes integerForKey:@"num"];  
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值