配列を用いてタスク管理を行おうと思いました。

var foo:Array = [String]()
//要素を最後尾に追加
func add(value:String){
    foo.append(value)
}
// valueを配列内から検索し、削除
func remove(value:String){
    foo.remove(at: foo.indexOf(value))
}

add(value:"bar")
remove(value:"bar")

そこでタスクを入れておく空の配列を用意し、そちらに要素を追加、
そして削除までの流れを行いたいのですが、

error: TestArea.playground:2:20: error: value of type 'Array<String>' has no member 'indexOf'
    foo.remove(at: foo.indexOf(value))
                   ^~~ ~~~~~~~

このようなエラーが出てしまい、追加の段階まで処理が進みません。
デフォルトで何らかの値を入れておけば問題なく動くのですが、それでは意味がないので、何かしらの策はないでしょうか?