【发布时间】:2022-03-03 22:07:32
【问题描述】:
我正在尝试为 UIColor 定义扩展名
import UIKit
extension UIColor {
convenience init(rgb:UInt){
let red:CGFloat = CGFloat((rgb & 0xFF0000) >> 16)/255.0;
let green:CGFloat = CGFloat((rgb & 0xFF00) >> 8)/255.0;
let blue:CGFloat = CGFloat(rgb & 0xFF)/255.0;
self.init(red: red, green: green, blue: blue, alpha: 1.0)
}
class func applicationGreenColor() -> UIColor {
return UIColor(red: 0.255, green: 0.804, blue: 0.470, alpha: 1)
}
}
每当我尝试使用任何添加的功能时,都会出现以下错误: 'applicationGreenColor' 的模糊使用。
我什至尝试添加非常简单的方法,例如:
func info(){
println(self.description);
}
导致相同的编译错误:'info' 的模糊使用。
因此从 RGB 单元初始化工作正常。
我为 String 和其他类添加了多个扩展,但任何东西都适用于 UIColor。谁能告诉我我做错了什么?
更新 - 我可以看到我的 UIImage 扩展方法中定义的所有方法在代码完成建议中出现了两次。
【问题讨论】:
-
我可以毫无问题地构建它。你确定你只添加一次方法吗?例如,您没有在 Obj-C 中创建的相同方法吗?
-
我很确定我没有任何重复。这是一个空项目,只有一个框架目标和测试目标。我也可以很好地构建它,问题是当我尝试编译测试目标以运行测试时: func testBlueColor() { let blueColor = UIColor.applicationBlueColor(); XCTAssert(blueColor != nil, "Pass") } 这里抱怨 info 方法的模糊使用。
-
奇怪,我可以毫无问题地使用它。
-
也许你在同一个项目中导入了框架,所以编译器会看到它两次。
-
如果你认为 Xcode 应该做得更好 -> bugreport.apple.com
标签: swift