
[code]

     if firstRandomNumber > secondRandomNumber {
    
           playerscoretotal += 1
            self.playerscore.text = String(playerscore)
        }
    
[/code]

ここで

> Could not find an overload for 'init' that accepts the supplied arguments

というエラーが出ます。

なぜでしょうか？

初心者です。


CC BY-SA 3.0
2015-03-23T18:12:23.300
8281
2015-08-02T03:59:20.407
2015-03-23T21:46:11.387
5750
8890
question
swift
Swift could not find overload for 'init'ってなんですか？


エラーメッセージを意訳すると、

> playerscoreの型は、String()の引数にはできないよ

となります。

質問から離れて、提示のコードのみ注目するなら、こう書きかえるのが妥当かと思います。

[code]

    if firstRandomNumber > secondRandomNumber {
       playerscoretotal += 1
       self.playerscore.text = playerscore.description
    }
    
[/code]

`Printable`プロトコルを実装している型なら、かならずなにかしらの文字列（String型）を、`description`は返します。


CC BY-SA 3.0
2015-03-23T18:38:39.883
8283
2015-03-24T02:24:36.477
2015-03-24T02:24:36.477
7362
7362
8281
answer


質問に対する回答という意味では本題から外れてしまいますが、  
`playerscore.text`に`playerscore`を代入しているのがエラーの原因で、

[code]

    self.playerscore.text = String(playerscore)
    
[/code]

の部分は

[code]

    self.playerscore.text = String(playerscoretotal)
    
[/code]

とするのが本来想定している処理なのではないでしょうか？


CC BY-SA 3.0
2015-03-24T12:06:14.010
8339
2015-03-24T14:49:56.813
2015-03-24T14:49:56.813
3516
3516
8281
answer


これでよいと思います。

[code]

    self.playerscore.text = "\(playerscore)"
    
[/code]


CC BY-SA 3.0
2015-04-04T00:37:04.083
8737
2015-04-04T00:37:04.083
8666
8281
answer