小编Bil*_*fas的帖子

Swift 2或3中的Google Analytics问题

我有Swift 2(Swift 3)和Google Analytics的问题.

这是问题所在:

tracker.send(GAIDictionaryBuilder.createScreenView().build())
Run Code Online (Sandbox Code Playgroud)

Xcode告诉我:

无法使用类型'(NSMutableDictionary!)'的参数列表调用'send'

google-analytics ios swift

36
推荐指数
3
解决办法
9000
查看次数

Swift中flatMap和compactMap的区别

似乎在Swift 4.1 flatMap中已弃用.然而,Swift 4.1中 有一个新方法,compactMap它做同样的事情?有了flatMap你可以集合中变换的每个对象,然后删除在无任何项目.
像flatMap一样

let array = ["1", "2", nil] 
array.flatMap { $0 } // will return "1", "2"
Run Code Online (Sandbox Code Playgroud)

就像compactMap一样

let array = ["1", "2", nil] 
array.compactMap { $0 } // will return "1", "2"
Run Code Online (Sandbox Code Playgroud)

compactMap 正在做同样的事情.

这两种方法有什么区别?为什么Apple决定重命名该方法?

swift swift4 swift4.1

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

将文件上传到特定目录中的Google Cloud

如何在特定的存储桶目录(例如foo)中上传Google Cloud上的文件?

"use strict";

const gcloud = require("gcloud");

const PROJECT_ID = "<project-id>";

let storage = gcloud.storage({
  projectId: PROJECT_ID,
  keyFilename: 'auth.json'
});

let bucket = storage.bucket(`${PROJECT_ID}.appspot.com`)
bucket.upload("1.jpg", (err, file) => {
    if (err) { return console.error(err); }
    let publicUrl = `https://firebasestorage.googleapis.com/v0/b/${PROJECT_ID}.appspot.com/o/${file.metadata.name}?alt=media`;
    console.log(publicUrl);
});
Run Code Online (Sandbox Code Playgroud)

我试过了:

bucket.file("foo/1.jpg").upload("1.jpg", ...)
Run Code Online (Sandbox Code Playgroud)

但那里没有upload方法.

1.jpg该如何发送foo目录?

在Firebase中,在客户端,我做:

ref.child("foo").put(myFile);
Run Code Online (Sandbox Code Playgroud)

node.js google-cloud-storage

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

使用Swift从Widget IOS打开应用程序

如何使用Swift从Today Widget打开我的应用程序?我只是想按下Widget,而不是想打开我的应用程序.我现在在我的整个视图上都有一个按钮,按钮很清晰.但那对我不起作用:(我需要帮助:)

@IBAction func launchApp(sender: AnyObject) {
   var url: NSURL = NSURL.URLWithString("AffordItLauncher://")
   self.extensionContext?.openURL(url, completionHandler: nil)
}
Run Code Online (Sandbox Code Playgroud)

ios swift

8
推荐指数
1
解决办法
3447
查看次数

Swift中具有反向传播的简单神经网络

我正在尝试用反向传播实现一个非常简单的神经网络.我试图用AND逻辑运算符训练网络.但预测它并不适合我.:(

    public class ActivationFunction {

        class func sigmoid(x: Float) -> Float {
            return 1.0 / (1.0 + exp(-x))
        }

        class func dSigmoid(x: Float) -> Float {
            return x * (1 - x)
        }
    }

    public class NeuralNetConstants {

        public static let learningRate: Float = 0.3
        public static let momentum: Float = 0.6
        public static let iterations: Int = 100000

    }

public class Layer {

    private var output: [Float]
    private var input: [Float]
    private var weights: [Float]
    private var …
Run Code Online (Sandbox Code Playgroud)

java artificial-intelligence machine-learning neural-network swift

8
推荐指数
1
解决办法
587
查看次数

使用回溯的最佳权重子集和

我正在努力解决问题.我有一些重量.[2,7,20,70,200,700] 例如1507,在给定输入之后,它应返回这些权重的最佳组合.在这种情况下将是[700,200,200,200,200,7].不幸的是我的算法返回[700, 700, 70, 20, 7, 2, 2, 2, 2, 2].当我说最优时,我的意思是我的算法应尽可能使用最少数量的权重.

func solve(_ targetValue: Int, weights: inout [Int]) -> [Int] {
    // The used weights to store
    var usedWeights: [Int] = []
    // The current total value for the calculation
    var total = targetValue
    // If target value is 0 add it to the array and just return it
    if targetValue == 0 { usedWeights.append(0); return usedWeights }
    // …
Run Code Online (Sandbox Code Playgroud)

algorithm backtracking swift

7
推荐指数
1
解决办法
362
查看次数

使用在MacOS Catalina上运行Canvas的Xcode 11时出现的问题

我安装了Catalina macOS版本(10.15),但画布没有显示出来。

我从Xcode收到的错误消息是

选择一个方案来构建包含当前文件的目标,或者将该文件添加到当前方案所构建的目标中

macos xcode swiftui

7
推荐指数
1
解决办法
555
查看次数

观看OS 2问题以设置图像

我只是想在我的WKInterfaceController中添加一个图像但是......

Xcode告诉我:

无法在Watch上找到名为"circle44"的图片

@IBOutlet var cirlceImage: WKInterfaceImage!
override func awakeWithContext(context: AnyObject?) {
    super.awakeWithContext(context)

    cirlceImage.setImageNamed("circle44")
}
Run Code Online (Sandbox Code Playgroud)

ios swift apple-watch watchkit watchos-2

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

在 Swift 5.1 属性包装器中访问 self

我想创建一个属性包装器,它使我的UICollectionViewLayout.

因此我创建了这个属性包装器

@propertyWrapper
class LayoutInvalidating {
    private let layout: UICollectionViewLayout

    init(layout: UICollectionViewLayout) {
        self.layout = layout
        self.wrappedValue = layout
    }

    var wrappedValue: UICollectionViewLayout {
        didSet {
            self.layout.invalidateLayout()
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我想使用它如下

final class VehicleControlsCollectionViewLayout: UICollectionViewLayout {
     @LayoutInvalidating(layout: self) // self is not alive
     public var itemSize: CGSize = .init(width: 70, height: 70)
}
Run Code Online (Sandbox Code Playgroud)

每次设置属性时,我都想调用self.invalidateLayout(). 任何想法如何在自我存在时访问自我?

swift swift5.1

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

在“Combine iOS”中获取取消订阅的状态

我有一个简单的订阅,其中我subject正在发出字符串。只是出于好奇,我想知道我的订阅是否被取消。

据我所知,已取消的管道将不会发送任何完成。有一些方法可以实现这一目标吗?

用例是我可以取消所有订阅并收到此订阅的完成信息。我可以在哪里清理东西并反映这一点。

PlaygroundPage.current.needsIndefiniteExecution = true

var disposeBag: Set<AnyCancellable> = .init()

let subject = PassthroughSubject<String, Never>()

subject.sink(receiveCompletion: { completion in
    switch completion {
    case .failure(let error):
        print("Failed with: \(error.localizedDescription)")
    case .finished:
        print("Finished")
    }
}) { string in
    print(string)
}.store(in: &disposeBag)

subject.send("A")
disposeBag.map { $0.cancel() }
subject.send("B")
Run Code Online (Sandbox Code Playgroud)

ios swift combine

5
推荐指数
1
解决办法
1594
查看次数