详解iPhone Simulator文件路径

移动开发 iOS
本文介绍的详解iPhone Simulator文件路径,主要来介绍Simulator的文件,先来看内容详解。

详解iPhone Simulator文件路径是本文要介绍的内容,iphone/ipod touch app 的开发使用了沙盒,即程序员能访问的一些文件要在自己程序的沙盒之内,一个应用程序的目录除了编译后的程序文件,通常还会有自己的document,tmp目录,可以通过调用api来获取这些路径,然后保存文件。

当使用xcode编译执行时,通常会启动一个iphone simulator来执行app,但是有个问题是,每次用simulator启动时,生成的app程序的根目录都是不同的。

这也意味着,如果你有一份存好数据的文件,要放到document或者tmp目录下,然后在应用程序里通过调用GetDocumentDirectory类似的api来读时,得到的都是不同的路径(如果不修改代码,不重新编译则不会),也就是说,你需要每次测试运行时,都要把你保存好的数据文件拷到本次程序运行目录的document下,这样调试起来非常麻烦。如何解决这个问题?

其实也很简单。。。用google大法就好了。沙盒技术是在跑真正的iphone/ipod touch上时的限制,当跑simulator时,其实可以从其它路径读取文件。

也就是说,你可以把文件放到一个你指定的其它地方,不需要放到app下的document下,这样当跑simulator时,app也可以读到非自己沙盒的目录下的文件。而当真正发布一个app时,也就是在iphone/ipod touch上运行时,则每次app的运行的根目录是固定的(不象跑simulator时会动态改变),这时再把数据文件放到真正的沙盒document或者tmp目录下就可以了。

为了综合这上面这两种情况,当以simulator的方式来跑的时候,会有一个

  1. TARGET_IPHONE_SIMULATOR 

的宏,所以我们可以在获取文件时这么写:

  1. - (NSString *) dataFilePath {  
  2. #if TARGET_IPHONE_SIMULATOR  
  3.  return @"/Users/fengbo/project/test/yourFileName";  
  4. #else  
  5.  NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory  
  6.   , NSUserDomainMask, YES);  
  7.  NSString *documentsDirectory = [paths objectAtIndex:0];  
  8.  return [documentsDirectory stringByAppendingPathComponent:@"yourFileName"];  
  9. #endif  

这样就可以满足上面两种情况了。

小结:详解iPhone Simulator文件路径的内容介绍完了,希望本文对你有所帮助!

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-08-12 14:33:06

iPhone缓存文件

2011-08-22 12:01:38

iPhone开发文件

2011-08-10 11:12:33

iPhone文件

2009-09-17 09:29:35

CCNA SimulaCCNA

2011-06-03 10:19:59

iphone Objective-

2011-03-17 11:08:49

Java SE

2011-08-10 17:37:00

iPhoneASIHTTPRequ

2011-08-02 16:28:40

iPhone Web开发 事件

2011-08-12 14:58:43

iPhoneTableview数据

2011-07-20 15:20:14

IPhone AVAudioRec

2011-08-02 17:27:06

iPhone应用 剪切技巧

2011-07-29 10:51:41

iPhone 全屏显示 视图

2011-07-08 17:45:19

iPhone 文档

2011-08-03 17:44:57

iPhone App 文件

2011-07-28 10:11:54

iPhone开发 备忘

2011-08-16 17:18:44

iPhone开发安全

2011-08-01 09:50:46

iPhone 获取对象 UIView

2011-07-18 14:39:53

iPhone SDK UIKit

2011-07-27 11:14:37

iPhone UITableVie

2011-07-06 17:48:30

iPhone Xcode 模拟器
点赞
收藏

51CTO技术栈公众号