场景
在 Assets.xcasset
添加 Data Set
内容, 如 .mp3
, .mp4
等非图片内容时, 通过 NSBundle
无法获取文件路径, -[NSBundle pathForResource:ofType:]
方法返回为 nil
.
目标
不改变文件存放位置的前提下, 获取文件的路径或二进制内容.
前置
Assets.xcassets
内选择 +
-> 选择 New Data Set
, 将 demo.mp4
添加到指定位置, Set 的名字重名为 test
.
方法
通过 NSDataAsset
类来获取 xcasset
文件夹内的文件:
// xcasset 内包含 test.mp4 Data Set
NSString *fileName = @"test";
NSDataAsset *dataAsset = [[NSDataAsset alloc] initWithName:fileName];
[dataAsset.data writeToFile:/* save file path */ atomically:YES]
NSURL *filePath = [NSURL fileURLWithPath:/* save file path */];
至此, 就可以获取 xcasset
中非图片资源了
注意
NSDataAsset
为 iOS 9.0 及以上 才可使用的方法
网友评论