资产目录,图像未在设备上加载,但在模拟器中很好

Posted

技术标签:

【中文标题】资产目录,图像未在设备上加载,但在模拟器中很好【英文标题】:asset catalog, images not loading on device, but fine in simulator 【发布时间】:2013-10-08 18:51:03 【问题描述】:

我设置了三个资产文件夹,一个名为 Images,其中包含应用程序图标和启动图像,一个名为 Puzzles,一个名为 ThumbPuzzle。

在模拟器上测试时,图片都加载正常,在设备上测试时,图片不加载,控制台出现以下错误。

mmap: 无法分配内存

错误:CUICommonAssetStorage -initWithPath:在 /var/mobile/Applications/6DF65069-9ED2-4EE8-966A-5B63CBF36136/Puzzle 找不到存储文件 Mania.app/Assets.car

我知道图像的名称是正确的,因为我从目录中复制了它们的名称。我正在使用以下内容加载图像

- (UICollectionViewCell *)collectionView:(UICollectionView *)cv cellForItemAtIndexPath:(NSIndexPath *)indexPath

    pm_PuzzleCell *cell = [cv dequeueReusableCellWithReuseIdentifier:@"Cell" forIndexPath:indexPath];
    PM_Puzzle *puzzle = [self.frcPuzzles objectAtIndexPath:indexPath];
    cell.puzzle = puzzle;
    return cell;

以及 pm_PuzzleCell 中的以下内容

-(void) setPuzzle:(PM_Puzzle *)puzzle

    if(_puzzle != puzzle) 
        _puzzle = puzzle;
    
    [self.imageView setImage:[UIImage imageNamed:[NSString stringWithFormat:@"Thumb%@", [puzzle puzzleImage]]]];

【问题讨论】:

【参考方案1】:

可能xcassets 太大了。 或者更好的是,xcassets 中的图像太大,xcode 无法加载。

mmap: 无法分配内存

我删除了 Resource 文件夹中的 xcasset 动态图像并且效果很好。

【讨论】:

添加到资源文件夹然后导入到资产目录工作,只是没有将应变导入到目录中【参考方案2】:

通过将资源导入项目,然后将它们导入资产目录,可以避免该问题。将它们直接导入目录不起作用

【讨论】:

以上是关于资产目录,图像未在设备上加载,但在模拟器中很好的主要内容,如果未能解决你的问题,请参考以下文章

图像未在 iPad Air、iPad 3 等较新的 iPad 设备上显示,但在模拟器 iOS 8.1 上显示

iPhone 核心数据 - 获取的托管对象未在设备上发布(在模拟器上很好)

核心图形效果:在模拟器上有效,但在设备中无效

React Native-本地映像在模拟器中运行得很好,但在发行后却没有]]

加载本地化 pathForResource 在 iOS 模拟器上工作,但在设备上失败

表单按钮显示在模拟器中但未在智能设备中显示