Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何将选定的UIPickerView行元素与数组元素进行比较?_Ios_Swift_Uipickerview - Fatal编程技术网

Ios 如何将选定的UIPickerView行元素与数组元素进行比较?

Ios 如何将选定的UIPickerView行元素与数组元素进行比较?,ios,swift,uipickerview,Ios,Swift,Uipickerview,这是我的UIPickerView数组 import UIKit class ViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate { @IBOutlet weak var categoryFactsPincker: UIPickerView! @IBOutlet weak var randomFactLabel: UILabel! 我想使用此按钮比较为打印不同类别而选

这是我的UIPickerView数组

import UIKit

class ViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate {


    @IBOutlet weak var categoryFactsPincker: UIPickerView!

    @IBOutlet weak var randomFactLabel: UILabel!
我想使用此按钮比较为打印不同类别而选择的数组元素和UIPickerView

let categoryFactsArray = ["Interesting Facts", "Fun Facts", "Nutrition Facts", "Funny Facts", "Unbelievable Facts", "Did You Know", "Animal Facts", "Mind Blowing Facts", "Weird Facts"]


override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

    categoryFactsPincker.delegate = self
    categoryFactsPincker.dataSource = self
}
}试试这个

@IBAction func buttonPressed(_ sender: UIButton) {

    if categoryFactsArray[row] == 0 {

        updateInterestingFacts()
    }else if categoryFactsPincker.selectedRow(inComponent: 1){

    }
}

func updateInterestingFacts(){

    let random = interestingFactsArray[Int(arc4random_uniform(UInt32(interestingFactsArray.count)))]

    //        randomFactLabel.text = random

    let alert = UIAlertController(title: "Random Fact", message: "\(random)", preferredStyle: .alert)

    alert.addAction(UIAlertAction(title: "OK", style: .default, handler: nil))
    self.present(alert, animated: true)

}

func numberOfComponents(in pickerView: UIPickerView) -> Int {

    return 1
}

func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {

    return categoryFactsArray.count
}

func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {

    return categoryFactsArray[row]
}

func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {

    categoryFactsArray[row]
}
此打印应显示所选值,以便您可以使用进行比较,或根据需要执行任何操作

@IBAction func buttonPressed(_ sender: UIButton) {

    if categoryFactsArray[row] == 0 {

        updateInterestingFacts()
    }else if categoryFactsPincker.selectedRow(inComponent: 1){

    }
}

func updateInterestingFacts(){

    let random = interestingFactsArray[Int(arc4random_uniform(UInt32(interestingFactsArray.count)))]

    //        randomFactLabel.text = random

    let alert = UIAlertController(title: "Random Fact", message: "\(random)", preferredStyle: .alert)

    alert.addAction(UIAlertAction(title: "OK", style: .default, handler: nil))
    self.present(alert, animated: true)

}

func numberOfComponents(in pickerView: UIPickerView) -> Int {

    return 1
}

func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {

    return categoryFactsArray.count
}

func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {

    return categoryFactsArray[row]
}

func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {

    categoryFactsArray[row]
}

此打印应显示所选的值,以便您可以使用进行比较,或根据需要进行比较。

最后,我用以下代码修复了它:

        @IBAction func buttonPressed(_ sender: UIButton) {

    if categoryFactsPincker.selectedRow(inComponent: 0) == 0 {
        updateInterestingFacts()
    }else{
        let categorySelected = categoryFactsArray[categoryFactsPincker.selectedRow(inComponent: 0)]
        print(categorySelected)
    }
}

最后,我用以下代码修复了它:

        @IBAction func buttonPressed(_ sender: UIButton) {

    if categoryFactsPincker.selectedRow(inComponent: 0) == 0 {
        updateInterestingFacts()
    }else{
        let categorySelected = categoryFactsArray[categoryFactsPincker.selectedRow(inComponent: 0)]
        print(categorySelected)
    }
}

它不工作,Xcode返回一个错误给我。如果categoryFactsArray[行]==0,则此行中“使用未解析的标识符‘行’”{很抱歉,只是复制您的代码,但现在我做了一个简单的更改,就像您以前做的那样,如果用户选择索引0他调用updateInterestingFacts函数,如果用户选择一个索引>0代码打印该索引,您可以使用变量categorySelected来选择一个值,或者CategoryFactSpinker.selectedRow(不完整:0要使用选定的索引,您可以在数组中插入一个值“Random values”,如果第一个索引不调用此函数,我现在不知道如何编写代码。它不起作用。Xcode将返回一个错误。如果categoryFactsArray[row]==0,则在此行中使用未解析的标识符“row”。){很抱歉,只是复制您的代码,但现在我做了一个简单的更改,就像您以前做的那样,如果用户选择索引0他调用updateInterestingFacts函数,如果用户选择一个索引>0代码打印该索引,您可以使用变量categorySelected来选择一个值,或者CategoryFactSpinker.selectedRow(不完整:0要使用选定的索引,可以在数组中插入一个值“Random values”。如果第一个索引不调用此函数,我现在不知道如何编写代码。