【问题标题】:Calculation with Multiple Parameters多参数计算
【发布时间】:2023-03-05 05:13:01
【问题描述】:

(一般来说是编码新手,如果我没有使用正确的语言/逻辑,请见谅)

我正在尝试制作一个用于在线销售的计算器应用程序,它可以让您查看从不同网站收取费用后您会得到多少钱。我为销售平台使用了UIPickerView,用户可以在其中选择他们想要销售的网站,然后输出到UITextField。接下来是销售平台内卖家级别的UIPickerView,然后链接到另一个UITextField(卖家级别决定费用百分比,更高的级别意味着更低的费用)。

到目前为止,我还不能创建多个标准,以便当平台 = x 和卖家级别 = y 时,它会吐出一个等式的值。当我在 excel 中执行此操作时,它使用 if & 和基于函数,例如:if(and(platform = "StockX, seller level = 1),(List Price * (1-0.125),"")。显然 swift 并不擅长,所以这就是我卡住的地方。

[抱歉在下面添加了代码,不太确定这是否是您诊断问题所需的一切,但欢迎任何方向,谢谢!]

导入 UIKit

类 ViewControllerTakeback: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource, UITextFieldDelegate {

var currentTextField = UITextField()
var pickerView = UIPickerView()
var levelTextField = UITextField()
var levelPickerView = UIPickerView()

var PlatformType:[String] = []
var Platform2Type:[String] = []
var PLevel:[String] = []
var PLevel2: [String] = []

//variables for criteria on the takeback calculation
var a = "StockX", b = "GOAT", c = "Stadium Goods", d = "Flight Club", e = "Grailed", f = "PayPal"
var aa = "1", bb = "2", cc = "3", dd = "4", ee = "Domestic", ff = "International", gg = "Invoice"

//text fields
@IBOutlet weak var platformTextField: UITextField!
@IBOutlet weak var platformTextField2: UITextField!
@IBOutlet weak var pLevelTextField: UITextField!
@IBOutlet weak var pLevel2TextField: UITextField!
@IBOutlet weak var takebackLabel: UILabel!
@IBOutlet weak var retailTextField: UITextField!

override func viewDidLoad() {
    super.viewDidLoad()
//data for platformTextField & platformTextField2 via pickerView
PlatformType = ["StockX","GOAT","Stadium Goods","Flight Club","Grailed","PayPal"]
Platform2Type = ["StockX","GOAT","Stadium Goods","Flight Club","Grailed","PayPal"]

//data for pLevelTextField & pLevel2TextField via pickerView
PLevel = ["1","2","3","4","5","Domestic","International","Invoice"]
PLevel2 = ["1","2","3","4","5","Domestic","International","Invoice"]
}

还附上了应用程序的图片,以了解流程是如何工作的。理想情况下,我喜欢拥有它,这样您就可以从两个不同的网站获取信息,然后比较哪个网站更适合销售。

app view app view annotated

【问题讨论】:

  • 你能在 UI 和编码部分添加你目前所做的吗?

标签: swift switch-statement


【解决方案1】:

switch 之类的声音可能对您有用。下面是一个示例,说明这在您的情况下如何工作。请注意,<platform><seller lever> 将替换为您声明的实际变量。

switch(<platform>, <seller level>)
{
  case ("StockX", 1):
      //price equation
  case ("StockY", 2):
      //price equation
  default:
      //price equation
}

【讨论】:

  • 好的,所以我已经达到了所有变量都在 case 函数中工作的地步(谢谢你),但是当我尝试输入一个方程并将输出设置为Takeback UILabel 我一直遇到错误。我应该怎么做呢?
  • 在这种情况下,您应该接受此问题的答案并针对错误消息提出单独的问题。如果没有看到您的实现和错误消息,将很难回答这个问题。新问题应该是直截了当的,我相信您会很快得到准确的答案。
【解决方案2】:

如果我正确理解您的问题,我会创建一些容器。卖家级别->费用的容器(数组或字典),网站->不确定在您的示例中的容器。然后,您可以从这些容器创建 UIPickerView 项目,并使用附加到容器的规定数字进行计算

【讨论】:

    【解决方案3】:

    实际上,您在 Excel 中执行此操作的方式也适用于 Swift(一个大的 IF 或开关)。但是如果有一个查找表,您可以在其中输入平台和关卡并获取乘数甚至是乘数函数(因为函数是 Swift 中的一等公民),这会更加酷和 Swiftier。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-10
      • 2019-04-09
      • 1970-01-01
      • 2012-07-04
      • 1970-01-01
      相关资源
      最近更新 更多