导航:首页 > 文件教程 > iosresource文件夹

iosresource文件夹

发布时间:2023-03-24 00:53:27

A. ios中怎么读取resources路径下的文件

NSArray *array = [[NSBundle mainBundle] pathsForResourcesOfType:@"jpg" inDirectory:@"image"];
NSLog(@"array:%@",array);

首先需要在mac上新建一个文件夹叫image, 放一些图片进去,然后把整个文件夹拖到项目中,在弹出的对话框中选择:Create folder references for any added folders ,这个会创建一个真实的目录,否则找到不这个目录下的文件

家目录下共有四个子目录:
Documents 目录:您应该将所有的应用程序数据文件写入到这个目录下。这个目录用于存储用户数据或其它应该定期备份的信息。
AppName.app 目录:这是应用程序的程序包目录,包含应用程序的本身。由于应用程序必须经过签名,所以您在运行时不能对这个目录中的内容进行修改,否则可能会使应用程序无法启动。
Library 目录:这个目录下有两个子目录:Caches 和 Preferences
Preferences 目录包含应用程序的偏好设置文件。您不应该直接创建偏好设置文件,而是应该使用NSUserDefaults类来取得和设置应用程序的偏好
Caches 目录用于存放应用程序专用的支持文件,保存应用程序再次启动过程中需要的信息。
tmp 目录:这个目录用于存放临时文件,保存应用程序再次启动过程中不需要的信息。
获取这些目录路径的方法:
1,获取家目录路径的函数:
NSString *homeDir = NSHomeDirectory();
2,获取Documents目录路径的方法:
NSArray *paths = (NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docDir = [paths objectAtIndex:0];
3,获取Caches目录路径的方法:
NSArray*paths=(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类方法用于返回一个代表应用程序包的对象。

文件IO
1,将数据写到Documents目录:
- (BOOL)writeApplicationData:(NSData *)data toFile:(NSString *)fileName {
NSArray *paths = (NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docDir = [paths objectAtIndex:0]; if (!docDir) { NSLog(@”Documents directory not found!”); return NO; }
NSString *filePath = [docDir :fileName];
return [data writeToFile:filePath atomically:YES];}
2,从Documents目录读取数据:
- (NSData *)applicationDataFromFile:(NSString *)fileName {
NSArray *paths = (NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docDir = [paths objectAtIndex:0];
NSString *filePath = [docDir :fileName];
NSData *data = [[[NSData alloc] initWithContentsOfFile:filePath] autorelease]; return data;}
这个主要就是返回一个绝对路径用来存放我们需要储存的文件。
- (NSString *)dataFilePath {
NSArray *paths = (NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
return [documentsDirectory :@"shoppingCar.plist"];
}
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]];
}

B. iOS 怎么从沙盒中加载 一个 zip 包和一个资源文件夹

这肯定的啊,因为用[UIImage imageNamed:question.icon]是直接从当前的项目中读取文件,可以实现; 而NSString *path = [[NSBundle mainBundle] pathForResource:question.icon];是从沙盒路径中读取文件,只用question.icon是不够的,应该加上当前的沙盒路径,如果你的沙盒路径中还有一个存放图片的文件夹的话,还要加上这个文件夹的名字,question.icon应该改为: 沙盒路径/文件夹名/question.icon 具体实现是这样的: //程序包的根目录(沙盒路径) NSString *resourcePath = [[NSBundle mainBundle] resourcePath]; //完整的图片路径,如果图片是放在文件夹中的话,还要在中间加上文件夹的路径 NSString *imagepath = [resourcePath :@”question.icon“]; //可以打印路径看看是什么情况 NSlog(@“%@”,imagePath); UIImage *image = [UIImage imageWithContentsOfFile:imagePath];

C. iOS 集成百度语音合成与识别sdk遇到的问题记录

修改bitcode为no

1,运行官方demo初始化报错
Get offline TTS license from server failed

初始化报错BDTTSErrDomainEmbeddedTTS:Bai voice speaker resource authorization failed

解决:
将resource文件夹删掉

将demo目录里的BDSClientResource文件夹放入工程中

后面改了boundle id再运行又报这个错,,折腾半天,把这两个交换一下,可以了..不知道是不是什么时候不小心弄反了

2,语音识别报错

解决:
网络技术人员沟通了好多次都说是因为手机网络问题,但是手机网络迟余是正常的。后来忽然想到公司提供的libBaiSpeechSDK.a库有依赖加密的三个库,可能是因为加密库导致的网络异常,然后联系公司技术人员换了移除加密库后的libBaiSpeechSDK.a,再运行不会报错了。。

3,自己写的demo,头文件、库都添加之后,编译成功码猜滚,但是调用BDSSpeechSynthesizer单例会报错

解决:(不确定是不是加错了库,可能把语音识别里的.a放进来,但是调用的是语音合成的方法,报了这个错)
删掉重新拖入语音合成的libBaiSpeechSDK.a之后build报sqlite的错误了

另:如果同时集成语音合成和 语音识别,两个demo中的libBaiSpeechSDK.a不要同时拖进项目,将其中一个改一下名字再试试(网上搜到的方法,遇到的时候试一下)

报错sqlite相关

解决:添加libsqlite3.0.tbd

报错:(坑真多,官方文档为什么不说明要加这些库...)

解决:
添加Accelerate.framework

使用识别ui类BDRecognizerViewController时,报错

解决:
在点击语音识别按钮时执行了[self.asrManager sendCommand:BDS_ASR_CMD_START];
也执行了[self.recognizerViewController startVoiceRecognition];

语音识别的时候报错server read sdk error, not ltv struct
解决:
网上没搜到有用的解决方法。
识别的时候我一直说的都是“网络语音”,识别一直报错,但是当我换成“你好”,识别就成功了...
received down http, without up http
这个问题好像也是因为这个

集成到项目中,语音识别的时兆侍候
xxxApp(app name) was compiled with optimization - stepping may behave oddly; variables may not be available.

解决:

D. resource目录下背景图层存在哪个目录下

Unity 的 Assets目录下有一些重要的文件夹没有被默认创建,一开始默认只有一个Scene目录。
在Packages目录下展示了当前工程的packages,该目录是只读的(2018版本后才有),只能通过PM变化。
场景可以存放在任意目录,不限于Scene目录。
Editor目录,用以存放辅助开发的工具,即编辑器。Editor目大锋录的脚本不会被编译打包出去。
Editor Default Resources 存放工具所需的一些美化资源,唯一且只能放在Assets目录下。
Plugins目录存放第三方的代码,如SDK接入的文件,在编译时链接到DLL中。
Resources下的文件会被特殊打包,强制加载进内存。
Gizmos存储一些Scene界面的标线,图标等。
StreamingAsset 非常重要,Unity游戏发布时,只有Resources和StreamingAssets文件夹里的资源会被随包出去,复制到APK或者IOS的包内。更具体的在“目录分布“一文中介绍。
Resources的资源是同步加载的,而AB的资源是异步加载。AB资源无法直接看到资源情况。使用AB资源需要提前打包,否则会有Bug。开发期全部使用Resources替代。
但是Resources并不建议使用过度,因为会初始化加载全部的资源,而且常驻内存,增加启动时间,资源无法增加!
Resources一般只在以下情况使用:1.整个生命周期滚罩晌都需要的资源;2.不怎么占用内存闷嫌的资源;3.不因平台差异变化的资源;4.用于启动的资源。

阅读全文

与iosresource文件夹相关的资料

热点内容
threejs添加文字 浏览:436
微信春节理财通 浏览:948
qq主题模块应用教程 浏览:993
javaweb项目打包 浏览:59
qq主题是哪个文件夹里 浏览:642
超越狂暴升级txt书包 浏览:263
cad复制不能粘贴到新建文件 浏览:565
linux网络socket编程 浏览:926
战争雷霆客户端在哪个文件里 浏览:847
如何授权点淘app读取步数 浏览:671
sonarqube代码负责度 浏览:116
step7左面编程框怎么调出来 浏览:348
wordpress文章字号 浏览:117
xp电脑正在识别网络怎么回事 浏览:30
a9加密文件在哪里找 浏览:69
从微信传文件到电脑上吗 浏览:684
更改文件名后 浏览:443
如何更改系统用户名磁盘文件 浏览:595
摄影测量处理数据需要哪些参数 浏览:45
itunes怎样单独恢复应用程序 浏览:788

友情链接