Iphone 如何卸下CALayer';谁的面具?
嗨,伙计们,这是我的第一个问题,这几个小时来一直困扰着我。这是我的密码 m 每次Iphone 如何卸下CALayer';谁的面具?,iphone,cocoa-touch,core-animation,calayer,Iphone,Cocoa Touch,Core Animation,Calayer,嗨,伙计们,这是我的第一个问题,这几个小时来一直困扰着我。这是我的密码 m 每次wallpimageview.layer.mask=nil,captionTextField.layer将取消分配。我正在我的项目中使用ARC。我给captionTextField分配了@属性(非原子,强)我使用了NSZombies,得到了***-[CALayer retain]:发送到解除分配实例0x85b5e20的消息 如何让CALayer不被解除分配?您没有提供足够的信息。谁拥有你的captionTextFie
wallpimageview.layer.mask=nil调用code>,captionTextField.layer
将取消分配。我正在我的项目中使用ARC。我给captionTextField分配了@属性(非原子,强)
我使用了NSZombies,得到了***-[CALayer retain]:发送到解除分配实例0x85b5e20的消息
如何让CALayer不被解除分配?您没有提供足够的信息。谁拥有你的captionTextField
张贴代码,说明如何创建captionTextField,以及将其存储在何处。您需要将对它的强引用保存在某个地方(强实例变量或属性),否则一旦没有人抓住它,它就会被释放
将WallperImageView的图层掩码设置为零会导致captionTextField被释放,这是没有意义的,除非您创建了captionTextField并且没有保留对它的强引用。好的,我阅读了有关指针的内容,意识到wallparImageView.layer.mask指向0x85b5e20,当我将其设为nil时,captionTextField.layer也为nil…。我上面的代码有什么变通方法吗?
- (IBAction)changeMask:(id)sender {
if (!mask) {
[wallpaperImageView.layer setMask:captionTextField.layer];
NSLog(@"%@",captionTextField.layer);
mask = YES;
}
else {
wallpaperImageView.layer.mask = nil;
NSLog(@"%@",captionTextField);
mask = NO;
}
}