Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.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
Ios 发送到解除分配对象的消息'_UITextTiledLayer';对象_Ios_Objective C_Uiview_Uiscrollview - Fatal编程技术网

Ios 发送到解除分配对象的消息'_UITextTiledLayer';对象

Ios 发送到解除分配对象的消息'_UITextTiledLayer';对象,ios,objective-c,uiview,uiscrollview,Ios,Objective C,Uiview,Uiscrollview,我有一个UIScrollView,在其内容视图上绘制。我也有缩放功能。我正在添加UIView和UITextViews作为缩放时的子视图,并在用户缩小缩放时删除UIView和UITextViews。有时它工作得很好,但有时它会崩溃 此外,console continuous还显示了这些和更多功能的不同组合: CALayerGetSuperlayer called on instance of UIScrollViewDelayedTouchesBeganGestureRecognizer CALa

我有一个
UIScrollView
,在其内容视图上绘制。我也有缩放功能。我正在添加
UIView
UITextViews
作为缩放时的子视图,并在用户缩小缩放时删除
UIView和
UITextViews
。有时它工作得很好,但有时它会崩溃

此外,console continuous还显示了这些和更多功能的不同组合:

CALayerGetSuperlayer called on instance of UIScrollViewDelayedTouchesBeganGestureRecognizer
CALayerGetSuperlayer called on instance of __NSCFDictionary
CALayerGetSuperlayer called on instance of __NSArrayM
CALayerGetSuperlayer called on instance of __NSCFString
CALayerGetSuperlayer called on instance of __NSCFType
我附上了一个僵尸模板的仪器截图。它显示发送到解除分配对象的消息的摘要

我的一些代码将有助于解决这个问题。 我返回CATiledLayer以确保缩放的内容清晰

- (id)initWithCoder:(NSCoder *)aDecoder
{
    self = [super initWithCoder:aDecoder];
    if (self) {
        CATiledLayer *tiledLayer = (CATiledLayer *)[self layer];
        tiledLayer.levelsOfDetail = 4;
        tiledLayer.levelsOfDetailBias = 4;
    }
    return self;
}

+ layerClass
{
    return [CATiledLayer class];
}

- (void)dealloc
{
    CATiledLayer *tiledLayer = (CATiledLayer *)self.layer;
    tiledLayer.contents=nil;
    tiledLayer.delegate=nil;
    [tiledLayer removeFromSuperlayer];
}

也许我错了,但是,为什么要在
dealoc
方法中实例化
CATiledLayer
,这在物理上是错误的。。。
据我所知,此错误的原因可能是您正在尝试解除锁定一个已解除锁定的对象,或者您正在解除锁定的对象是空的

在解除锁定中,我正在从superview中删除tiledLayer,因为我必须停止tiledLayer的异步绘制。谢谢您的建议对我有用。我从dealoc方法中删除了所有CATiledLayer,只放了“self.layer.contents=nil;”。