0

我希望这是我一段时间以来的最后一个问题,我通过以下方式打开一个 xib 文件:

Results1 *myView1 = [[Results1 alloc]initWithNibName:@"Results1" bundle:nil];
    [self.view addSubview:myView1.view];

我在第二个 xib 文件上有一个按钮:

-(IBAction)Button1:(id)sender
{

    [self.view removeFromSuperview];
}

每次都崩溃:

0xecf09b:  movl   8(%edx), %edi

我有链接的意见

我不确定这是否是问题所在:

@interface TestTypingToolViewController ()

{
    NSString *iResults1;
    NSString *iResults2;
    NSString *iResults3;
    NSString *iResults4;
    NSString *iResults5;
    NSString *Segment;
    NSDictionary *ResultsData;
}

@end

谢谢大家的帮助,大家!

4

3 回答 3

2

问题是我需要关闭自动引用计数并且一切正常。

于 2012-08-14T17:55:09.467 回答
0

您似乎遇到了僵尸问题,即某些对象在某些时候被释放,但您尝试通过一些(悬空)引用进行访问。您可以通过启用僵尸检测来获得更多信息。

实际上,我的猜测是您可以通过存储Results1 *myView1类的属性来解决此问题。实际上,在您的代码中,所发生的事情是myView1.viewself.view;保留。whilemyView1存储在局部变量中,因此当不再使用该变量时,应该释放对象(在 ARC 下)。您在这两个对象的生命周期之间存在不匹配,这可能导致崩溃。

于 2012-08-10T20:45:03.220 回答
-2

类名.h

@property (nonatomic, strong) UIViewController *myView1;

类名.m

@synthersize myView1;

// 在 -(void)viewDidLoad

self.myView1 = [[Result1 alloc] init];
[self.view addSubview:self.myView1.view];
于 2012-11-21T22:44:27.233 回答