【问题标题】:'UInt32' is not convertible to 'MirrorDisposition''UInt32' 不能转换为 'MirrorDisposition'
【发布时间】:2014-09-19 12:51:00
【问题描述】:

编辑: 行。我只是将我的代码更改为: var randomX = Int(arc4random()%6) 希望我能在发帖之前想到它:|

我将此主题的公认答案作为参考:Swift convert UInt to Int


我一直在尝试用 swift 制作一个简单的 ios 猜测应用程序。我正在生成一个随机数并从用户那里获取另一个数字并比较两者。但我遇到了这个错误:'UInt32' is not convertible to 'MirrorDisposition' 同时比较两个整数(其中一个通过 toInt() 方法从字符串转换为整数)

您可以在下面看到我的用户界面、我的代码、我阅读的两个 stackoverflow 主题以及阅读这些主题后我如何更改我的代码。

用户界面:(我无法调整图像大小)

我的代码:

import UIKit

class ViewController: UIViewController {

    @IBOutlet var myImageView: UIImageView!
    @IBOutlet var inputField: UITextField!
    @IBAction func clickedGuessButtonAction(sender: AnyObject) {
        println("Guess button clicked")
        var randomX = arc4random()%6
        println("randomX = \(randomX)")
        var guess = inputField.text.toInt()

        if((inputField.text) != nil){
            if(guess == randomX){
                println("correct")
                var image = UIImage(named: "images/tick.png");
                myImageView.image=image;
                self.view.addSubview(myImageView); // what is this?
                inputField.resignFirstResponder();// hides keyboard

            }
            else
            {
                println("wrong")
                var image = UIImage(named: "images/cross.png")
                myImageView.image=image;
                self.view.addSubview(myImageView);
                inputField.resignFirstResponder();//hides keyboard
            }
        }
        else{
            println("invalid input. requires integer only")
            inputField.resignFirstResponder();// hides keyboard
        }
    }

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

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}

我在 stackoverflow 上找到了这些主题:

float is not convertible to 'MirrorDisposition' Swift What is mirrordisposition?

iOS Swift Error: 'T' is not convertible to 'MirrorDisposition'

第一个特别有一个扩展答案,最后建议if intValue == Int(floatValue)

比我改了var guess = inputField.text.toInt()

var guess = Int(inputField.text);

但这次我收到了这样的错误消息:Cannot invoke 'init' with an argument of type '@lvalue String!'

这一次,我搜索了这个错误信息,但找不到任何有用的信息。比较两个整数应该不难。我肯定错过了一些简单的东西。有什么想法吗?

【问题讨论】:

  • 好的。我只是将我的代码更改为:var randomX = Int(arc4random()%6) 希望我能在发帖之前想到它:|
  • Swift convert UInt to Int 的可能副本

标签: ios swift


【解决方案1】:

尝试改变:

  var randomX = arc4random()%6

  var randomX = Int(arc4random()%6)

【讨论】:

  • 嗨,感谢您的回复,但我已经在问题的顶部和末尾说明了答案(作为评论)
  • 我已使用此方法解决了我自己的问题,但它不再有效。
【解决方案2】:

应该这样做

let sizeX = UInt32(6)
let randomX = CGFloat(arc4random_uniform(sizeX))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-30
    • 2017-10-15
    • 2017-10-05
    • 1970-01-01
    • 2016-09-06
    • 2017-05-31
    • 2015-06-06
    相关资源
    最近更新 更多