首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iPhone CGRectMake记忆假设

iPhone CGRectMake记忆假设
EN

Stack Overflow用户
提问于 2009-10-06 16:23:05
回答 4查看 2.3K关注 0票数 2

在iPhone上。为什么这样的代码会导致内存泄漏?2分钟后,净字节数翻了一番。我所做的就是用一个NSTimer调用下面的方法在屏幕上移动一个球。

有什么想法吗?

代码语言:javascript
复制
- (void)nextFrame:(NSNotification *)notification {
    ballInstance.frame = CGRectMake(value, 0,  320, 480);
}

这里是“完整”代码,新项目,行为仍然相同。它在屏幕上移动一个jpg,并且内存被大量消耗。如果我将'++‘从'value’中删除,那么内存就可以了。(换句话说,有静态图形)所以.正在缓存的图像是问题所在吗?如果是这样,我怎样才能阻止它达到天文数字呢?

代码语言:javascript
复制
- (void)applicationDidFinishLaunching:(UIApplication *)application {    


    [window makeKeyAndVisible];

    NSTimer * nSTimer =[NSTimer scheduledTimerWithTimeInterval: .02
         target: self
       selector: @selector(tick)
       userInfo: nil
        repeats: YES];
    value =0;
}

- (void)tick {
    NSLog(@"tick");
    myOutlet1.frame = CGRectMake(value++, 0,  320, 480);
}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-10-06 16:35:48

张贴的代码没有泄漏。问题就在其他地方。

如果您知道nextFrame:内部存在漏洞,那么它必须在-[Ball setFrame:]中,因为它是在此方法中发送的唯一消息。

票数 8
EN

Stack Overflow用户

发布于 2009-10-06 16:45:28

泄漏不在您显示的代码中,特别是如果frame@synthesized属性的话。您要么需要显示更多的代码,要么花一些高质量的时间与仪器一起找出泄漏的内容和分配的位置。

票数 3
EN

Stack Overflow用户

发布于 2009-10-06 20:39:08

据苹果公司称:

这是iPhone OS3.0中的一个bug。图形系统的分配器 是否将realloc事件报告为malloc事件,因此ObjectAlloc符合 这些新对象几乎从未被释放过。我没有 确定为什么在添加泄漏工具时可能看不到它,但是 这两种工具都不会显示出真正的漏洞。

虽然我仍然不知道如何补救它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1526635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档