菜鸟教程小白 发表于 2022-12-13 14:03:51

ios - UIImage imageNamed : name returns nil the second time


                                            <p><p>我有这段代码用来测试 iOS 中的动画。目标是加载 4 个 png 并在 <code>UIImageView</code> 中为它们设置动画。我有一个 <code>NSMutableArray imageNames</code> 在其中保存图像的路径。它被正确填充。然后,当我尝试使用它创建 <code>UIImage</code> 时,它第一次工作,但之后返回 nil。为什么会这样?我无法理解这一点。</p>

<pre><code>for (NSInteger i = 0; i &lt; imageNames.count; i++) {
    NSString *name = ;
    ];
}
</code></pre>

<p>这是完整的代码:</p>

<pre><code>- (void)viewDidLoad
{
    ;
    UIView *test = [ initWithFrame:CGRectMake(200, 200, 50, 50)];
    test.backgroundColor = ;
    ;
    self.view.backgroundColor = ;
    NSMutableArray *imageNames = [ initWithCapacity:4];

    NSString *basePath = @&#34;/Users/johndoe/Desktop/soa/SoA/SoA/Models/firefly/&#34;;
    // Load images
    for (NSInteger i = 0; i &lt; 4; i++) {
      NSMutableString *fullPath = ;
      ;
      ;
//      ;

    }

    NSMutableArray *images = [ init];
    for (NSInteger i = 0; i &lt; imageNames.count; i++) {
      NSString *name = ;
      ];
    }

    // Normal Animation
    UIImageView *animationImageView = [ initWithFrame:CGRectMake(60, 95, 86, 193)];
    animationImageView.animationImages = images;
    animationImageView.animationDuration = 0.5;

    ;
    ;
}
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>好吧,正如您所说,这是出于学习目的,我已经尝试了您的代码,我发现唯一真正的问题是@rmaddy 指出的问题。我不知道您的图像的确切存储位置,但我尝试将 4 个图像添加为 Assets 并从此更改您的代码:</p>

<pre><code>NSString *basePath = @&#34;/Users/johndoe/Desktop/soa/SoA/SoA/Models/firefly/&#34;;
// Load images
for (NSInteger i = 0; i &lt; 4; i++) {
    NSMutableString *fullPath = ;
    ;
    ;
}
</code></pre>

<p>到这里:</p>

<pre><code>// Load images
for (NSInteger i = 0; i &lt; 4; i++) {
    NSString *path = ;
    ;
}
</code></pre>

<p>我认为它按您的预期工作。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - UIImage imageNamed : name returns nil the second time,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/35185479/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/35185479/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - UIImage imageNamed : name returns nil the second time