Swift2の本を参考に下記のコードをSwift4で作成したところ、idを付与する配列部分で次のエラーが出ています。解決法を教えていただけますか。
<エラー内容>
Cannot convert value of type 'String' to expected argument type '(Diary, Diary) throws -> Bool'

<エラー該当部分>
diary.id = dataArray.max(by: "id")! + 1

import UIKit
import RealmSwift

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
    //segueで画面遷移するときに呼ばれる
    override func prepare(for segue: UIStoryboardSegue, sender: Any?){
        let inputViewController: inputViewController = segue.destination as! inputViewController
        if segue.identifier == "cellsegue"{
            let indexPath = self.tableView.indexPathForSelectedRow
            inputViewController.diary = dataArray[indexPath!.row]

        } else {
            let diary = Diary()
            diary.title = "タイトル"
            diary.body = "本文"
            if dataArray.count != 0 {

                //エラー部分
                ***diary.id = dataArray.max(by: "id")! + 1***

            }
            inputViewController.diary = diary
        }
    }
    //Cannot convert value of type 'String' to expected argument type '(Diary, Diary) throws -> Bool'