我的bgs.bundle
包含20张图片,我试图加载image_file。
NSString *bpath = [[NSBundle mainBundle] pathForResource:@"bgs" ofType:@"bundle"];
NSArray *files = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:bpath error:NULL];
for (NSString *fileName in files) {
NSString *filePath = [[NSBundle mainBundle] pathForResource:fileName ofType:@"nil"];
if (filePath){
NSLog(filePath);
}else{
NSLog(@"file path is null");
}
filePath
始终为空,我还打印了fileName
,它运行正常。
我的代码有什么问题,或者有其他方法从bundle加载文件?
答案 0 :(得分:2)
您的主要问题是您尝试从主要包而不是<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"
android:text="TOOOOOO LONG TEXT..."
android:layout_height="wrap_content" />
</android.support.v4.widget.NestedScrollView>
加载fileName
。
更改您的代码:
bgs.bundle
另一种选择是为NSString *bpath = [[NSBundle mainBundle] pathForResource:@"bgs" ofType:@"bundle"];
NSArray *files = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:bpath error:NULL];
for (NSString *fileName in files) {
NSString *filePath = [bpath stringByAppendingPathComponent:fileName];
NSLog(@"filePath = %@", filePath);
}
获取NSBundle
。
bgs.bundle
现在您可以根据需要使用NSString *bpath = [[NSBundle mainBundle] pathForResource:@"bgs" ofType:@"bundle"];
NSBundle bgsBundle = [NSBundle bundleWithPath:bpath];
。例如:
bgsBundle