相关疑难解决方法(0)

在Swift中"初始化"类的类方法?

我正在寻找类似于Objective-C的+(void)initialize类方法的行为,因为该方法在初始化类时被调用一次,之后再也不会被调用.

一个简单class init () {}class关闭将是非常时尚!显然,当我们在结构封闭中使用" class vars"而不是" static vars"时,这一切都将很好地匹配!

ios swift

73
推荐指数
4
解决办法
6万
查看次数

如何在现有UIKit类(如UIColor)的扩展中添加初始值设定项?

Swift文档说可以在扩展中添加初始化程序,文档中的示例是关于向结构添加初始化程序.Xcode无法识别UIColor我的便捷初始化程序中的指定初始值设定项:

extension UIColor {
  convenience init(rawValue red: CGFloat, green g: CGFloat, blue b: CGFloat, alpha a: CGFloat) {

    // Can not find out the designated initializer here
    self.init()

  }
}
Run Code Online (Sandbox Code Playgroud)

有解决方案吗

uicolor swift

27
推荐指数
1
解决办法
2万
查看次数

现在Swift已经弃用它,是否有替代macOS中的initialize()?

Objective-C声明了一个类函数initialize(),它在每个类使用之前运行一次.它经常被用作交换方法实现(混合)等的入口点.它的使用在Swift 3.1中被弃用.

这就是我以前做的事情:

extension NSView {
    public override class func initialize() {
        // This is called on class init and before `applicationDidFinishLaunching`
    }
}
Run Code Online (Sandbox Code Playgroud)

如果没有,我怎么能做同样的事情initialize

我需要它用于框架,所以要求在AppDelegate中调用一些东西是不行的.我之前需要它applicationDidFinishLaunching.

我非常喜欢这个解决方案.这正是我正在寻找的,但它适用于iOS.我需要它用于macOS.有人可以推荐一个macOS版本吗?

具体来说,我需要相当于此,但对于macOS:

extension UIApplication {
    private static let runOnce: Void = {
        // This is called before `applicationDidFinishLaunching`
    }()

    override open var next: UIResponder? {
        UIApplication.runOnce
        return super.next
    }
}
Run Code Online (Sandbox Code Playgroud)

我试过覆盖各种属性但NSApplication没有成功.

解决方案需要纯粹的Swift.没有Objective-C.

macos swizzling swift

18
推荐指数
2
解决办法
1245
查看次数

方法在swift 4中调整

Swift 4中的混合不再有效.

Method 'initialize()' defines Objective-C class method 'initialize', which is not permitted by Swift

这是我找到解决方案的事情所以想留下问题和答案给别人.

swizzling swift method-swizzling swift4

6
推荐指数
1
解决办法
5822
查看次数

Swift中的属性和变量有什​​么区别?

从几个初始教程中,我看到属性属于一个类,并且基本上是C++世界中使用的"全局变量"(在此前编码).我还将变量看作更多只在方法中使用/存储信息的"本地"实体.

然后我遇到了这个Quora线程:https://www.quora.com/Apple-Swift-programming-language/What-is-the-difference-between-a-property-and-a-variable 现在我看到属性正在能够执行与其调用相关的代码.这很酷,但也为我打开了一大堆其他问题.

还有其他简单明了的方法来记住属性和变量之间的区别吗?

ios swift

2
推荐指数
2
解决办法
2543
查看次数

标签 统计

swift ×5

ios ×2

swizzling ×2

macos ×1

method-swizzling ×1

swift4 ×1

uicolor ×1