小编Cra*_*ens的帖子

在 Xcode 9/iOS 11 中将应用程序图标自定义为构建阶段

我的应用程序设置为根据正在构建的配置向应用程序图标添加横幅。它是按照这些步骤完成的。

https://www.raywenderlich.com/105641/change-app-icon-build-time

从 Xcode 9/iOS 11 开始,这似乎不再起作用。图像仍在正确修改,它们存在于应用程序包中,但它们并未用作设备上的应用程序图标。

有没有办法再次做到这一点?

xcode ios ios11 xcode9

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

Safari扩展运行多次注入javascript

我已经在Apple Developer站点上复制了以下示例中的代码.

https://developer.apple.com/library/content/documentation/Tools/Conceptual/SafariExtensionGuide/MessagesandProxies/MessagesandProxies.html#//apple_ref/doc/uid/TP40009977-CH14-SW1

当我运行扩展时,它会正常运行,除了注入的脚本运行3次,导致输出被写入console.log 3次.我还在doBigCalc函数中发出警报,它打开了3个警报.

为什么会发生/它应该发生?

javascript safari safari-extension

4
推荐指数
1
解决办法
2144
查看次数

调用协议扩展初始化程序

我正在尝试构建一组共享通用初始化代码的类。除了继承之外,我认为协议是可行的方法。虽然协议和协议扩展对我来说可以使用实例和静态方法,但我在使其与初始值设定项一起使用时遇到了一些麻烦。

假设我们有这个协议:

protocol CloudServiceWrapper {

    static var isConfigured: Bool { get }

    init()

    func initialize()

}
Run Code Online (Sandbox Code Playgroud)

现在假设我们要在协议扩展中添加isConfigured和的默认实现:init()

extension CloudServiceWrapper {

    static var isConfigured: Bool {
        get {
            return true
        }
    }

    init() {
        print("Initializing generic CloudServiceWrapper")
        self.init()
        if Self.isConfigured {
            initialize()
        }

    }

}
Run Code Online (Sandbox Code Playgroud)

最后,让我们有一个类实现此协议并尝试从其默认实现中受益:

class OneDriveWrapper: CloudServiceWrapper {

    required init() {
        // CloudServiceWrapper() // error: protocol type 'CloudServiceWrapper' cannot be instantiated
        // self = CloudServiceWrapper.init() // error: cannot assign to value: 'self' is immutable
        // super.init() …
Run Code Online (Sandbox Code Playgroud)

ios swift swift-protocols protocol-extension

3
推荐指数
1
解决办法
2608
查看次数