【发布时间】:2013-08-09 12:49:13
【问题描述】:
大家好,这是我关于 SO 的第一个问题,这让我困惑了好几个小时。这是我的代码。
.m
- (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;
}
}
每次调用 wallpaperImageView.layer.mask = nil; 时,captionTextField.layer 都会被释放。我在我的项目中使用 ARC。我用@property (nonatomic, strong) 分配了标题TextField 我使用了NSZombies 并得到了*** -[CALayer retain]: message sent to deallocated instance 0x85b5e20
如何让 CALayer 不被释放?
【问题讨论】:
-
好吧,我读到了指针,并意识到 wallpaperImageView.layer.mask 指向 0x85b5e20,当我把它设为 nil 时,captionTextField.layer 也是 nil ......我上面的代码有什么解决方法吗?
标签: iphone cocoa-touch core-animation calayer