質問: Array(results)` これでResultsがArrayに変換されるそうなのですが、 これをViewController内の他の関数で自由に利用する方法がわかりません。 どうかよろしくお願いします。 ### 補足情報(言語/FW/ツール等のバージョンなど) Xcode7.3 Realm 1.0.1
回答: 普通はResultsをArrayに変換する必要はありません。ResultsはArrayと同じように使えるのでResultsをそのまま使う方が、パフォーマンスもよく、自動更新といった機能も活用できるというメリットがあります。 もちろん理由があるならArrayに変換して使うのは問題ありません。 ArrayとResultsの使い方はほぼ同じなのでResultsを使った例を示します。 例えばテーブルビューにResultsのデータを表示するには一般的には下記のようにします。 Resultsをメンバ変数として保持し、viewDidLoadのタイミングで取得します。 テーブルビューのデータソースを`objects.count`や`objects[indexPath.row].title`などResultsを用いて値を取得し返したり、セルに設定したりします。 ``` class ViewController: UITableViewController { lazy var realm = try! Realm() var objects: Results! override func viewDidLoad() { super.viewDidLoad() objects = realm.objects(Data.self).sorted("order") } override func numberOfSectionsInTableView(tableView: UITableView) -> Int { return 1 } override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return objects.count } override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) let object = objects[indexPath.row] cell.textLabel.text = object.title ... return cell } ... ``` 普通はだいたいこんな感じです。 具体的にどういうことがしたくて、何に困っているのかを詳しく書いていただけると、もう少し具体的なアドバイスができると思います。