我正在创建一个应用,该应用从52张卡组中随机选择两张卡。然后,如果其中一张卡很强(在我的情况下,一张强卡为“ 10”或更高),我希望它显示一张图像“是”(勾号)。如果两个卡都很弱,那么我希望它显示图像“否”(十字)。我一直在尝试查找问题,但是每次更改某些内容时,都会出现一种新型错误。
我试图在func resultOfShuffle中设置未知的输出类型,我尝试为UIImageView创建和命名插座两次。
# ...
class PullVariable:
def __init__(self, app): # add app here
self.pulled_entry = app.my_entry.get() # use app here
print(self.pulled_entry)
# and then
root=Tk()
ui = Application(root)
ui.hello_world()
ui.entry()
pv = PullVariable(ui) # supply PullVariable with instance of Application
...
let cardArray = ["1.png", (...), "52.png"]
// All of the cards, from 2 to Ace (with every color). Number "33" is a card 10.
...
let cardResults = ["yes.png"]
...
@IBOutlet weak var theResult: UIImageView!
...
func randomizeCards() {
chooseCardOne = Int.random(in: 0 ... 51)
chooseCardTwo = Int.random(in: 0 ... 51)
现在,最后一个func resultOfShuffle的返回是错误的-告诉我:使用未解析的标识符'theResult'。问题,但这有点棘手,我不明白。
这就是我的应用程序的样子:
答案 0 :(得分:0)
每个语句是否都在同一ViewController
中执行?
然后,它将theResult
识别为UIImageView
。
问题已在注释中基于函数声明的范围进行了解决。由于它是在定义theResult
的类的外部中声明的,因此无法访问它。
解决方案可能是将变量作为参数传递给函数,或在ViewController
内部在变量的相同范围内声明函数。
无论如何,您正在尝试通过此行返回某些内容:
theResult.image = UIImage(named: cardResults)
不会计算类型,而只是将视图的图像设置为cardResults
中的内容。因此,您不应该返回任何内容,而只能使用此函数来更新视图的内容-这意味着您应该使用Void
返回类型。
此外,您正在将[String]
类型传递给图像初始化程序,而您应该只传递String
。
尝试这样的事情:
func resultOfShuffle(firstCard : Int, secondCard : Int) {
if firstCard > 33 {
theResult.image = UIImage(named: cardResults[0])
}
}