gpt4 book ai didi

iphone - 多次旋转后我的应用程序崩溃

转载 作者:行者123 更新时间:2023-12-03 15:52:55 27 4
gpt4 key购买 nike

尝试多次旋转时,我的应用程序崩溃了。我最初以为这只是iPhone模拟器,所以我将应用程序加载到iPod touch上,并且连续旋转较少后便崩溃了。我怀疑这是我的一种旋转方法中的内存泄漏。我可以认为导致崩溃的唯一地方是willRotateToInterfaceOrientation:duration:。我添加/扩展的与旋转相关的仅有的两种方法是shouldAutorotateToInterfaceOrientation:willRotateToInterfaceOrientation:duration,我不认为这是第一种,因为它仅包含两个词:return YES;。这是我的willRotateToInterfaceOrientation:duration:方法,因此您可以对其进行检查并查看可能的内存泄漏在哪里。

-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)orientation duration:(NSTimeInterval)duration 
{
UIFont *theFont;


if ((orientation == UIInterfaceOrientationLandscapeLeft) || (orientation == UIInterfaceOrientationLandscapeRight))
{
theFont = [yearByYear.font fontWithSize:16.0];
yearByYear.font = theFont;
[theview setContentSize:CGSizeMake(460.0f, 635.0f)];
}
else
{
theFont = [yearByYear.font fontWithSize:10.0];
yearByYear.font = theFont;
[theview setContentSize:CGSizeMake(300.0f, 460.0f)];
}

[theFont release];
}

yearByYear是一个 UITextView,而view是一个 UIScrollView

最佳答案

您不应该发布theFont。您不拥有该对象。

您还可以简化操作:

-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)orientation duration:(NSTimeInterval)duration  {

if ((orientation == UIInterfaceOrientationLandscapeLeft) || (orientation == UIInterfaceOrientationLandscapeRight)) {
yearByYear.font = [yearByYear.font fontWithSize:16.0]
[theview setContentSize:CGSizeMake(460.0f, 635.0f)];
}
else
{
yearByYear.font = [yearByYear.font fontWithSize:10.0]
[theview setContentSize:CGSizeMake(300.0f, 460.0f)];
}
}

完全摆脱 theFont

关于iphone - 多次旋转后我的应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2843618/

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