将文件传输到物理iOS设备
我已经设置了一个配置文件(通过Xcode)在连接的物理设备上调试我的应用程序 问题是此应用程序需要某些支持文件。有了Mac上的模拟器,我只需导航到模拟器目录下应用程序的将文件传输到物理iOS设备,ios,xcode,ipad,Ios,Xcode,Ipad,我已经设置了一个配置文件(通过Xcode)在连接的物理设备上调试我的应用程序 问题是此应用程序需要某些支持文件。有了Mac上的模拟器,我只需导航到模拟器目录下应用程序的文档目录,并将文件放在那里 有没有办法将这些相同的文件放到物理设备上?将这些文件放在项目文件结构中。 因此,它们将被复制到您的应用程序包中,并将通过documents目录提供 要将文件正确添加到iOS项目,请执行以下操作: 右键单击左侧文件列表顶部的项目图标 选择将文件添加到 选择要包含的文件夹/文件,然后单击“添加”。 不要忘
文档
目录,并将文件放在那里
有没有办法将这些相同的文件放到物理设备上?将这些文件放在项目文件结构中。 因此,它们将被复制到您的应用程序包中,并将通过documents目录提供 要将文件正确添加到iOS项目,请执行以下操作:
将文件添加到
- 不要忘记从给定列表中选择正确的
目标。请参考截图
// Check if the file has already been saved to the users phone, if not then copy it over
BOOL success;
NSString *fileName = @"test.jpg";
NSString *LIBRARY_DIR_PATH = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *filePath = [LIBRARY_DIR_PATH stringByAppendingPathComponent:fileName];
NSLog(@"%@",filePath);
// Create a FileManager object, we will use this to check the status
// of the file and to copy it over if required
NSFileManager *fileManager = [NSFileManager defaultManager];
// Check if the file has already been created in the users filesystem
success = [fileManager fileExistsAtPath:filePath];
// If the file already exists then return without doing anything
if(success) return;
// Else,
NSLog(@"FILE WASN'T THERE! SO GONNA COPY IT!");
// then proceed to copy the file from the application to the users filesystem
// Get the path to the files in the application package
NSString *filePathFromApp = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:fileName];
// Copy the file from the package to the users filesystem
[fileManager copyItemAtPath:filePathFromApp toPath:filePath error:nil];
希望上面的代码示例对您来说是清晰的
因此,每当您想在应用程序中访问该文件时,您都可以通过获取该文件的路径来获取该文件的引用,如下所示:
NSString *sqliteDB = [LIBRARY_DIR_PATH stringByAppendingPathComponent:fileName];
注意:在任何情况下,如果需要将文件复制到用户应用程序安装位置内的文档
目录,请使用以下内容替换库目录
:
NSString *DOCUMENTS_DIR_PATH = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
希望这个答案对你有帮助
干杯 你不能让他们成为目标的一部分资源吗?然后,您可以在运行时使用
[[NSBundle mainBundle]pathForResource:ofType::
加载它们。对于某些事情,我可以这样做,但对于不属于程序本身的文件,这更是如此,因此不应该是包的一部分。想想iTunes和下载的歌曲。嗯,我记得你可以使用iTunes(如果你的应用程序的设置允许的话)从Documents
文件夹中提取文件,但不确定你是否可以放入。如果在现实生活中,这些文件是你的应用程序从远程服务器下载的文件,也许你应该首先实现这一功能(即,虚拟服务器)。这是一个很好的解决方案。一个小细节:我想他想把它放到文档中,而不是库中。
。是的,这是真的。事实上,这可能必须与苹果的指导方针保持一致,对吧?否则以后会有问题。太棒了!我会试试看,看看它是怎么回事。看起来它符合我的要求。@kasurandika true;必须小心你在文档中存储的内容,除非你标记为“无备份”。@Kasun工作得很有魅力!不得不做一些小改动以符合我的预期工作流程,但是的,这个想法是完美的。应该有一本书叫做《苹果政策黑客指南》,这本书绝对应该在里面:)