小编PaF*_*aFi的帖子

如何比较两个数组的元素

我想比较两个数组的元素,并检查它们是否相等.我已经尝试了各种解决方案但没有真正有效.

我试过如何比较两个对象数组的解决方案

这是我的目标:

struct AccountBalance: Decodable {
    let balance: Double
    let currency: String

    init(balance: Double, currency: String ) {
        self.currency = currency
        self.balance = balance
    }

    enum CodingKeys: String, CodingKey {
        case currency = "Currency"
        case balance = "Balance"
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我试过的链接中的代码:

let result = zip(accountBalance, getsSaved).enumerate().filter() {
                $1.0 == $1.1
                }.map{$0.0}
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误:

Closure tuple parameter '(offset: Int, element: (AccountBalance, AccountBalance))' does not support destructuring with implicit parameters
Run Code Online (Sandbox Code Playgroud)

arrays swift

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

在 'Collection' 上引用实例方法 'stringify()' 需要类型 'Int' 和 'Stringify' 是等效的

我制作了一个协议 Stringify 来将实现该协议的类型转换为字符串。

protocol Stringify {
    func stringify() -> String
}

extension Collection where Iterator.Element == Stringify {
    /// changes all the elements in the collection to a String
    func stringify() -> [String] {
        var strings = [String]()
        if let elements = self as? [Stringify] {
            for element in elements {
                strings.append(element.stringify())
            }
        }
        return strings
    }
}

extension Int: Stringify {
    func stringify() -> String {
        return String(self)
    }
}

extension Double: Stringify {
    func stringify() -> String { …
Run Code Online (Sandbox Code Playgroud)

protocols swift

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

闭包存储属性初始化有什么好处?

将类的属性初始化为:

1.

let menuBar:MenuBar = {
        let mb = MenuBar()
        return mb
    }()
Run Code Online (Sandbox Code Playgroud)

和:

2.

let menuBar = MenuBar()
Run Code Online (Sandbox Code Playgroud)

initialization properties swift

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

过滤对象数组中的两个值

我有一个对象数组,我想通过两个条件过滤它们,如果对象在某个组中,或者它有某个名称,但我不知道为什么它不起作用。

这是我的代码:

let outputfiler = array.filter({$0.group.contains (where: {$0 == "groupBig" }) } || $1.name.contains(where: {$1 == "Eis"})  )
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

闭包中不包含匿名闭包参数

编辑:组是一个字符串数组,名称只是一个字符串。

我也试过这个:

outputfiler = array.filter{$0.group.contains (where: {$0 == "groupBig" }) || $0.name(where: {$0 == "Eis"}) }
Run Code Online (Sandbox Code Playgroud)

但是后来我收到了这个错误:

Extraneous argument label 'where:' in call
Run Code Online (Sandbox Code Playgroud)

arrays contains filter swift

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

UILabel textColor扩展

我想为UILabel创建一个扩展,我想修改UILabel类以自动检查文本值是否为positiv/negativ/cero,然后自动设置Color.

我想在我的代码中初始化UILabel时激活它,如下所示:

lazy var labelValue: UILabel! = {
        let lb = UILabel()
        lb.activateUpDown = true
        return lb
    }()
Run Code Online (Sandbox Code Playgroud)

这是我创建的扩展:

extension UILabel {
    var activateUpDown: Bool {
        set {
            if activateUpDown == true {
               textColor = colorUpDown(value: text)
            }
        }
        get {
            return true
        }
    }

    func colorUpDown(value: String?) -> UIColor {
        let valueDouble = Double(value ?? "0") ?? 0
        var output:UIColor = .black
        if valueDouble < 0 {
            output = .red
        } else {
            if valueDouble > 0 {
                output …
Run Code Online (Sandbox Code Playgroud)

textcolor uilabel uicolor swift

0
推荐指数
1
解决办法
752
查看次数

将回调方法转变为通过组合进行反应

这就是我正在做的:

-> 使用 FirebaseAuthentification 登录/注册 Firebase

-> 监听 AuthStateDidChangeListenerHandle

-> 我在 Firestore 中存储额外的用户信息,因此我检查 Firestore 中是否存在该用户

-> 如果用户不存在,我创建一个空用户

-> 如果一切成功,我通过回调返回未来发布者(我也想更改它)

这是 checkLoginState 函数:

func checkLoginState(completion: @escaping (AnyPublisher<AccountDetails,Error>) -> Void) {
    self.handler = Auth.auth().addStateDidChangeListener { [weak self] auth, user in
        guard let safeSelf = self else { return }
        completion(Future<AccountDetails,Error> { promise in
            if let user = user {
                print(user)
                print(auth)

                safeSelf.checkIfUserIsInDatabase(user: user.uid) { result in
                    switch result {
                    case .success(let isAvailable):
                        if isAvailable {
                             promise(.success(AccountDetails(userUID: user.uid,name: user.displayName, loggedIn: true, premiumUser: false))) …
Run Code Online (Sandbox Code Playgroud)

future publisher firebase swift combine

0
推荐指数
1
解决办法
1895
查看次数