当前位置:新注册送38元体验金 > 新注册送38元体验金操作系统 > 详解iPhone Simulator文件路径

详解iPhone Simulator文件路径

文章作者:新注册送38元体验金操作系统 上传时间:2019-08-22

详解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的方式来跑的时候,会有一个

TARGET_IPHONE_SIMULATOR 

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

- (NSString *) dataFilePath {  #if TARGET_IPHONE_SIMULATOR   return @"/Users/fengbo/project/test/yourFileName";  #else   NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory    , NSUserDomainMask, YES);   NSString *documentsDirectory = [paths objectAtIndex:0];   return [documentsDirectory stringByAppendingPathComponent:@"yourFileName"];  #endif  } 

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

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

iPhone Simulator文件 路径是本文要介绍的内容, iphone /ipod touch app 的开发使用了沙盒,即程序员能访问的一些 文件 要在自己程序的沙盒...

本文由新注册送38元体验金发布于新注册送38元体验金操作系统,转载请注明出处:详解iPhone Simulator文件路径

关键词: