gpt4 book ai didi

ios - Swift - 按名称获取属性崩溃并出现 valueForUndefinedKey 错误

转载 作者:行者123 更新时间:2023-11-28 15:25:16 30 4
gpt4 key购买 nike

我有 UIView 扩展,我想用它来添加渐变层。我知道我无法在扩展中创建 CAGradientLayer(或任何其他类型...)类型的存储属性,所以我想在 UIView 本身中创建 gradientLayer 属性(不在扩展名),而不是检查扩展名是否存在此属性。所以我要求:

extension UIView
{
private var gradientLayer:CAGradientLayer?
{
return value(forKey: "gradientLayer") as? CAGradientLayer
}

func addGradient()
{
guard gradientLayer != nil else
{
return
}

// do something with the layer
}
}

当此属性存在时一切正常,否则应用程序崩溃并出现错误:

valueForUndefinedKey:]: this class is not key value coding-compliant for the key gradientLayer.

是否可以在不使应用程序崩溃的情况下以这种方式知道属性是否存在?

最佳答案

子类化 UIView 并实现 valueForUndefinedKey:这样它就不会崩溃。

但是,我会以一种完全不同的方式来解决这个问题;我会将额外信息存储在 View 的 中。层可以在任何键下存储信息,如果您询问一个不存在的键也不会崩溃。

关于ios - Swift - 按名称获取属性崩溃并出现 valueForUndefinedKey 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45356032/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com