value of optional type 'String?' not unwrapped; did you mean to use '!' or '?'?

というSwiftのOptional型に関してのエラーが生じました。

Optional Value(「?」「!」が付随したコードで、「nil」を許容したコードか「nil」wo
許容しないコードのいずれかを明示する)にする必要があるのはわかったのですが、具体的に

let text = searchBar.text.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())

のコードのどこに対して行えば良いのかがわからないため質問致します。

以下コードなります。

import UIKit

class ListViewController: UITableViewController {

@IBOutlet weak var searchBar: UISearchBar!

private var results: [NSDictionary]?

override func viewDidLoad() {
    super.viewDidLoad()

    // Uncomment the following line to preserve selection between presentations
    // self.clearsSelectionOnViewWillAppear = false

    // Uncomment the following line to display an Edit button in the navigation bar for this view controller.
    // self.navigationItem.rightBarButtonItem = self.editButtonItem()
}


//中略


extension ListViewController: UISearchBarDelegate {

// searchBarのSearchボタンをタップしたときの処理
func searchBarSearchButtonClicked(searchBar: UISearchBar) {
    searchBar.resignFirstResponder() // キーボードを閉じる

    // エラーはここから
    let text = searchBar.text.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())
    //ここまでです。
    if let text = text {
        AFHTTPSessionManager().GET(
            "https://itunes.apple.com/search?term=\(text)&country=JP&lang=ja_jp&media=music",
            parameters: nil,
            success: { (task: NSURLSessionDataTask!, response: AnyObject!) -> Void in
                if let data = response as? NSDictionary, results = data["results"] as? [NSDictionary] {
                    self.results = results
                    self.tableView.reloadData() // 再描画
                }
            },
            failure: nil)
    }
}