0

大家好,这是我关于 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)我使用 NSZombies分配了标题TextField并得到了*** -[CALayer retain]: message sent to deallocated instance 0x85b5e20

如何让 CALayer 不被释放?

4

1 回答 1

0

您没有提供足够的信息。谁拥有您的标题文本字段?

发布代码,说明如何创建标题文本字段以及存储它的位置。您需要在某处保存对它的强引用(强实例变量或属性),否则一旦没有人持有它,它确实会被释放。

将您的 wallpaperImageView 的图层蒙版设置为 nil 会导致您的 captionTextField 被释放是没有意义的,除非您创建您的 captionTextField 并且不保留对它的强引用。

于 2013-08-15T23:45:45.070 回答