【问题收集·初级问题】模拟器和真机,分别如何指定数据库路径,模拟器和真机对应的沙盒有何不同…

模拟器和真机,分别如何指定数据库路径,模拟器和真机对应的沙盒有何不同…

网友的问题如下所示:
23:58:19

但是原理搞不太懂。。。

网友的问题如下所示:
23:59:28

我在项目中用了一个数据库框架对数据库的操作是这个框架封装好的

网友的问题如下所示:
23:59:36

我看了下头文件

网友的问题如下所示:
00:00:18

就是数据库在初始化的时候指定了一个路径是模拟器运行时的沙盒路径

我的回答如下所示:
00:01:02

嗯,在真机上数据库的路径能建立起来吗

网友的问题如下所示:
00:01:09

那么项目用模拟器运行后生成的数据库文件也就是xxx.db

我的回答如下所示:
00:01:38

#define
CYLAccountPath [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES)[0]
stringByAppendingPathComponent:@"account.data"]

我的回答如下所示:
00:01:43

是不是像这样

网友的问题如下所示:
00:01:42

这个文件会存放在Documents文件夹下

我的回答如下所示:
00:01:49

嗯是的。

网友的问题如下所示:
00:01:51

嗯对

网友的问题如下所示:
00:02:09

那么在真机上运行这个路径是不是要重新指定

我的回答如下所示:
00:02:22

这个是不用的。

网友的问题如下所示:
00:02:58

何以见得?

我的回答如下所示:
00:04:19

路径有两种,一种是绝对路径,比如/Users/chenyilong/Desktop/asdfsd.db,另一种就是我们刚刚用的这种。如果是前者,咱们在Mac的模拟器上跑完后,想在真机上跑是需要重新写路径的。

我的回答如下所示:
00:05:53

#define
CYLAccountPath [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES)[0]
stringByAppendingPathComponent:@"account.data"]这种方法是获取iOS设备的沙盒路径,是专门为iOS设备而设计的,而模拟器因为模拟了真机的环境,所以这种方法刚好也就能运行成功。

网友的问题如下所示:
00:07:07

哦原来如此我说呢路径没改目前还没出问题

我的回答如下所示:
00:07:51

这种方法就是为iOS设备iPhone-iPad而设计的。所以任何时候都不必要在真机上改。模拟器能运行,只能说明apple的模拟器很强大,模拟iOS设备模拟得一模一样,让编译器都认为这是在iOS设备上跑

网友的问题如下所示:
00:08:37

问题是项目有个需求就是要保证数据库其中一个表中要有两条数据

我的回答如下所示:
00:09:16

是一个db中两个表?还是什么?

网友的问题如下所示:
00:10:35

刚开始我的做法是先让项目在模拟器上运行生成一个.db的数据库文件,然后把这个文件放在项目中,然后重新指定dbpath
为 NSBundle mainbundle、、、

网友的问题如下所示:
00:11:07

让程序查找这个文件来加载数据库表中的数据

我的回答如下所示:
00:11:44

嗯,那你现在应该知道没必要了吧。

网友的问题如下所示:
00:12:52

后来我有写了文件拷贝操作实际证明不管用。。。

网友的问题如下所示:
00:13:53

最后还是指定了模拟器沙盒路径暂时没出问题。。。

我的回答如下所示:
00:14:16

放心,不会有问题的。

我的回答如下所示:
00:14:33

我的回答如下所示:
00:14:57

模拟器沙盒路径以后就改成真机沙盒路径

网友的问题如下所示:
00:15:06

项目打包成 apk 拿到其他设备安装应该也不会有问题了?

我的回答如下所示:
00:15:27

打包成ipa也不会有问题的

网友的问题如下所示:
00:16:25

也就是说
模拟器的Documents路径
和真机下的Documents 是一个路径

网友的问题如下所示:
00:16:33

能这么理解么?

我的回答如下所示:
00:16:43

网友的问题如下所示:
00:18:05

嗯那就好了今天有收获了!

我的回答如下所示:
00:18:15

咱们的方法,指向的实际上是iOS设备的沙盒路径。是不支持Mac电脑系统的,但是因为模拟器模拟得环境太逼真了,xcode以为是在真机上跑,所以也成功地指向了电脑的一个文件夹。

我的回答如下所示:
00:20:10

好的,以后随时交流哈。

【问题收集·初级问题】模拟器和真机,分别如何指定数据库路径,模拟器和真机对应的沙盒有何不同…,布布扣,bubuko.com

时间: 2024-10-29 10:46:58

【问题收集·初级问题】模拟器和真机,分别如何指定数据库路径,模拟器和真机对应的沙盒有何不同…的相关文章

iOS开发技巧之查看模拟器沙盒文件

iOS开发技巧之查看模拟器沙盒文件 iOS开发中,在对数据库进行操作时,有时我们需要直观的查看数据库的内容,那么我们如何找到沙盒中的这个文件呢,步骤很简单: 1.点击Finder选项栏上的前往菜单: 2.选择前往文件夹选项: 前往的文件路径为:/Users/username/Library/Application Support/iPhone Simulator/ 其中username为当前mac电脑的用户名. 3.界面类似如下模样,选择一个版本的模拟器,应用的沙盒文件就在Application

iOS-查看真机沙盒文件(利用Xocde)+模拟器查看沙盒文件

iOS在开发过程中一般使用真机进行测试,真机查看沙盒尝试了iTools 和 ifunbox都在iOS升级到9.0以后失去效果.在网络上搜寻到一篇通过Xcode查看真机沙盒文件的方式-> 在iOS开发之沙盒机制(SandBox),我们了解到如何查看模拟器的沙盒内容.直接在Finder->前往->前往文件夹里输入: /Users/ligang/Library/Application Support/iPhone Simulator/ 这样就可以查看模拟器的沙盒内容.在平时开发中,我们应该大部

如何查看真机的沙盒(图文教程)

在iOS开发之沙盒机制(SandBox),我们了解到如何查看模拟器的沙盒内容.直接在Finder->前往->前往文件夹里输入: /Users/ligang/Library/Application Support/iPhone Simulator/ 这样就可以查看模拟器的沙盒内容.在平时开发中,我们应该大部分用的是真机测试.如果需要在沙盒里操作文件,那么我们可以通过观察真机沙盒的内容,来确定文件操作是否正确. 如果你已经知道如何查看真机的沙盒,请看看其他的文章吧,在这里刚刚在线站内搜索可以搜索到

【问题收集·知识储备】Xcode只能选择My Mac,不能选择模拟器如何解决?

网友问题:请问打开一个应用,只能选择My Mac,不能选择模拟器如何解决? 答案: 下面将问答过程记录如下: CHENYILONG Blog 请问打开一个应用,只能选择My Mac,不能选择模拟器如何解决? 网友的问题 09:59:32 请问打开一个应用,只能选择My Mac,不能选择模拟器如何解决? 我的回答 10:00:32 你打开的是别人的应用吧 网友的问题 10:00:36 对 我的回答 10:01:06 别人的应用,有时候打开xcode是不行的 网友的问题 10:01:22 那有没有什

iOS 如何查看真机的沙盒(图文教程)

在iOS开发之沙盒机制(SandBox),我们了解到如何查看模拟器的沙盒内容.直接在Finder->前往->前往文件夹里输入: /Users/ligang/Library/Application Support/iPhone Simulator/ 这样就可以查看模拟器的沙盒内容.在平时开发中,我们应该大部分用的是真机测试.如果需要在沙盒里操作文件,那么我们可以通过观察真机沙盒的内容,来确定文件操作是否正确. 如果你已经知道如何查看真机的沙盒,请看看其他的文章吧,在这里刚刚在线站内搜索可以搜索到

iOS开发 - 获取真机沙盒数据

今天要获取之前真机测试时写入沙盒的数据, 本来以为挺麻烦的. 后来捣腾了一下, 才知道原来这么简单... 下面直接看具体步骤. 前提: 真机已经通过USB和你的电脑连接上了! 1.进入Organizer 2.选择你的应用. 并导出数据.(点击Download) 3.保存数据到相应位置.(点击Save) 4.打开, 查看数据. 保存完毕后, 你后发现一个这样的文件. 选中它, 右键---->显示包内容. 然后进入------->AppData ------>Documents. 即可看到你

iOS模拟器的应用沙盒在MAC中的位置

每个iOS应用都有自己专属的应用沙盒.分别为 应用程序包 Documents/ Library/Caches/ Library/Preferences/ tmp/ 当运行模拟时,在MAC下找到对应路径的规则随XCode的版本会有不同,在XCode6下的路径为 应用程序包 ~Library/Developer/CoreSimulator/Devices/<模拟器设备id>/data/Containers/Bundle/Application/<应用id> 其中模拟器设备id可以在XC

【翻译自mos文章】当NFS server 宕机后,Oracle 数据库 冻结并且alert 文件里没有任何错误

当NFS server 宕机后,Oracle 数据库 冻结并且alert 文件里没有任何错误 翻译自mos文章:When NFS Server Is Down, Oracle Server Freezes With No Errors In Alert Log File (文档 ID 1316251.1) 适用于: Oracle Server - Enterprise Edition - Version: 10.2.0.4 and later   [Release: 10.2 and later

获取手机SD卡路径(国产神机多个SD卡)

通过系统的 Environment.getExternalStorageDirectory().getAbsoluteFile(); 只能得到系统的SD卡路径,对于对个SD卡的国产神机,想得到外部SD卡就无能为力了.   下面介绍一个编写的工具类,通过反射得到系统隐藏的得到所有挂载路径方法获取所有SD卡路径: package com.itheima.mobilesafe.utils; import java.lang.reflect.InvocationTargetException; impo