问题:
NSBundle *bundle = [NSBundle mainBundle];
NSString *resourcePath = [bundle resourcePath];
NSString *filePath = [resourcePath stringByAppendingPathComponent:@"cover.jpg"]; //rainbow.png
NSData *data = [NSData dataWithContentsOfFile:filePath];
UIImage *image = [UIImage imageWithData:data];
UIImage *image = [UIImage imageWithContentsOfFile:filePath];
蓝色文件下的 image 为nil
黄色文件夹下 image 有数据,与是否是jpg还是png无关
解决方法如下:
Xcode创建的iOS项目内存在两种文件夹:Group(黄色, 伪文件夹) 和Folder(蓝色, 真文件夹):
Group:
Folder:
Images.xcassets或Group文件夹内的PNG图片可通过imageNamed方法直接加载:
[UIImage imageNamed:@"photo"];
Folder文件夹内的PNG图片通过imageNamed方法加载必须拼接文件夹路径, 否则图片无法显示:
[UIImage imageNamed:@"Folder/imageName"];
问题:如何读取蓝色文件夹里面的JSON文件
方法:
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"205e40b643e1162ebf5789194dae6baf/target" ofType:@"json"];
NSData *jsonData = [[NSData alloc] initWithContentsOfFile:filePath];
NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
NSString *retStr = [[NSString alloc] initWithData:jsonData encoding:enc];
原因:
205e40b643e1162ebf5789194dae6baf/ 是真实的文件夹,所以要拼接