場(chǎng)景
在 Assets.xcasset
添加 Data Set
內(nèi)容, 如 .mp3
, .mp4
等非圖片內(nèi)容時(shí), 通過 NSBundle
無(wú)法獲取文件路徑, -[NSBundle pathForResource:ofType:]
方法返回為 nil
.
目標(biāo)
不改變文件存放位置的前提下, 獲取文件的路徑或二進(jìn)制內(nèi)容.
前置
Assets.xcassets
內(nèi)選擇 +
-> 選擇 New Data Set
, 將 demo.mp4
添加到指定位置, Set 的名字重名為 test
.
方法
通過 NSDataAsset
類來(lái)獲取 xcasset
文件夾內(nèi)的文件:
// xcasset 內(nèi)包含 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 及以上 才可使用的方法