我有Swift 2(Swift 3)和Google Analytics的问题.
这是问题所在:
tracker.send(GAIDictionaryBuilder.createScreenView().build())
Run Code Online (Sandbox Code Playgroud)
Xcode告诉我:
无法使用类型'(NSMutableDictionary!)'的参数列表调用'send'
似乎在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决定重命名该方法?
如何在特定的存储桶目录(例如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) 如何使用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) 我正在尝试用反向传播实现一个非常简单的神经网络.我试图用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
我正在努力解决问题.我有一些重量.[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) 我安装了Catalina macOS版本(10.15),但画布没有显示出来。
我从Xcode收到的错误消息是
选择一个方案来构建包含当前文件的目标,或者将该文件添加到当前方案所构建的目标中
我只是想在我的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) 我想创建一个属性包装器,它使我的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(). 任何想法如何在自我存在时访问自我?
我有一个简单的订阅,其中我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)