ios – 如何在Swift函数中将表达式作为参数传递?

ios – 如何在Swift函数中将表达式作为参数传递?,第1张

概述我是初级iOS开发人员.我想重构我的代码.目前我想重构我的领域方法.为了保存或删除Realm中的数据,我需要在整个地方使用很多try try block,所以我想提供一个服务来处理这个问题.我试过但我不知道这是不是正确的方法 import RealmSwiftclass RealmService { private init() {} static let shared = 我是初级iOS开发人员.我想重构我的代码.目前我想重构我的领域方法.为了保存或删除Realm中的数据,我需要在整个地方使用很多try try block,所以我想提供一个服务来处理这个问题.我试过但我不知道这是不是正确的方法

import RealmSwiftclass RealmService {    private init() {}    static let shared = RealmService()    var realm = try! Realm()    func save(Expression: ()) {        do {            try realm.write {            // I want to pass the Expression in this block here                Expression            }        } catch {            post(error)        }    }}

用法:

func savetoRealmDatabase(wishList: WishList,product: Product) {    RealmService.shared.save(Expression: {        // I want to pass Expression in the block in here as argument        wishList.products.append(product)    }())}

我想将表达式wishList.products.append(product)作为RealmService类中函数的参数传递.有没有更好的方法来实现这一目标?

解决方法 你的“表达式”可以用type() – >表示. VoID – 一个不接受任何参数并且不返回任何参数的闭包.

这是您的方法应该声明的方式:

func save(Expression: @escaPing () -> VoID) {    do {        try realm.write {            Expression()        }    } catch {        post(error)    }}

这是你应该如何使用它:

func savetoRealmDatabase(wishList: WishList,product: Product) {    RealmService.shared.save(Expression: {        wishList.products.append(product)    })}
总结

以上是内存溢出为你收集整理的ios – 如何在Swift函数中将表达式作为参数传递?全部内容,希望文章能够帮你解决ios – 如何在Swift函数中将表达式作为参数传递?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1075401.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存