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 < 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 = @"/Users/johndoe/Desktop/soa/SoA/SoA/Models/firefly/";
// Load images
for (NSInteger i = 0; i < 4; i++) {
NSMutableString *fullPath = ;
;
;
// ;
}
NSMutableArray *images = [ init];
for (NSInteger i = 0; i < 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 = @"/Users/johndoe/Desktop/soa/SoA/SoA/Models/firefly/";
// Load images
for (NSInteger i = 0; i < 4; i++) {
NSMutableString *fullPath = ;
;
;
}
</code></pre>
<p>到这里:</p>
<pre><code>// Load images
for (NSInteger i = 0; i < 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]