我正在添加一个XIB作为子视图,仅供临时使用。它是全屏的,我认为我的代码效率低下。我知道我在这里做错了什么。我的子视图在控制台中收到奇怪的崩溃和警告消息。我知道子视图中的代码没有任何问题,因为我之前已经对它进行了不同的测试。
我在这里做错了吗?
self.sp = [[Score alloc] initWithNibName:@"Score" bundle:nil];
[self.view addSubview:self.sp.view];
[self.sp.view setFrame:CGRectMake(0, 485, 320, 480)];
[self.sp.view setBackgroundColor:[UIColor clearColor]];
[UIView animateWithDuration:1
delay:0
options:UIViewAnimationOptionCurveLinear
animations:^{
[self.sp.view setCenter:self.view.center];
}
completion:nil];
我认为这与我的案例中释放'sp'有关。我该如何正确发布?我在视图控制器中忽略了该视图,而不是在此视图中。
谢谢!
答案 0 :(得分:1)
你肯定是在泄漏Score
个对象。
当你alloc
init
一个对象时,它返回一个保留计数为1的对象,你永远不会release
。更重要的是,如果您的sp
属性属于retain
属性,则会进一步将保留计数增加1,同样,您需要将其与release
调用进行平衡。
假设sp
是retain
属性,请尝试以下操作:
self.sp = [[[Score alloc] initWithNibName:@"Score" bundle:nil] autorelease];
并确保您的dealloc
方法也release
sp
。