Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何卸下CALayer';谁的面具?_Iphone_Cocoa Touch_Core Animation_Calayer - Fatal编程技术网

Iphone 如何卸下CALayer';谁的面具?

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

嗨,伙计们,这是我的第一个问题,这几个小时来一直困扰着我。这是我的密码

m

每次
wallpimageview.layer.mask=nil
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;
}


}