gpt4 book ai didi

objective-c - UIImage :resizableImageWithCapInsets 创建的崩溃释放图像

转载 作者:行者123 更新时间:2023-11-28 18:40:27 24 4
gpt4 key购买 nike

我最近刚开始使用 iOS 编程,并假设我了解 Objective-C 引用计数,但似乎我没有... >(代码 1 或代码 2)。

我没有使用 ARC(基于 PhoneGap 的项目)。

for(int i = 0; i < 10; ++i)
{
UIImage *a = [UIImage imageNamed:@"NavigationBarBackButtonBlack.png"];
UIImage *b = [a resizableImageWithCapInsets:UIEdgeInsetsMake(0, 13, 0, 7)];
NSLog(@"a has %d retains, b has %d retains, a==b == %d\n", [a retainCount], [b retainCount], a==b ? 1 : 0);
[a release];
[b release];
NSLog(@"#%d\n", i);
}
NSLog(@"FINISHED\n");

输出如我所料:

a has 1 retains, b has 1 retains, a==b == 0
#0
a has 1 retains, b has 1 retains, a==b == 0
#1
a has 1 retains, b has 1 retains, a==b == 0
[...snip...]
a has 1 retains, b has 1 retains, a==b == 0
#9
FINISHED

这里有什么问题?是否有一些自动释放正在进行,或者加盖图像是否保留对原始图像的引用?不知道。

最佳答案

imageNamedresizableImageWithCapInsets 都返回自动释放的对象。您不应手动释放它们。

换句话说:如果你没有alloccopyretain,你不应该release它!

作为最后的提示:忘掉 retainCount 属性吧,它对你毫无用处。

关于objective-c - UIImage :resizableImageWithCapInsets 创建的崩溃释放图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11577144/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com