:空の場合
public var first: T? { return rlmResults.firstObject() as! T? }
は、最初の結果内のオブジェクト、またはnilを返します。 Java用のレルムのドキュメント(スウィフトドキュメントで同じ文言を見つけることができなかった)から
:RealmResultsも、それは何のオブジェクトが含まれていない場合にはNOT NULLされることはありませんことを
注意してください。 RealmResultsが空であるかどうかを確認するには、常にsize()メソッドを使用する必要があります。
短くても、最初のオブジェクトが存在するかどうかを確認したり、要素を数えようとしたりしてください。
出典:
Java - Class RealmResults、
Swift - Results Class Reference
編集:ここではコードサンプルがあり、それはレルムの例から取られて、私のニーズに変更され、彼らはかどうかを検出するために、通知のトークンを使用配列が空です
class Record: Object {
dynamic var workoutName = ""
dynamic var totalTime = ""
dynamic var date = ""
}
let realm = try! Realm()
let array = try! Realm().objects(Record).sorted("date")
var notificationToken: NotificationToken?
override func viewDidLoad() {
super.viewDidLoad()
setupUI()
// Set results notification block
notificationToken = array.addNotificationBlock { [weak self] (changes: RealmCollectionChange) in
guard let tableView = self?.tableView else { return }
switch changes {
case .Initial:
// Results are now populated and can be accessed without blocking the UI
tableView.reloadData()
break
case .Update(_, let deletions, let insertions, let modifications):
// Query results have changed, so apply them to the UITableView
tableView.beginUpdates()
tableView.insertRowsAtIndexPaths(insertions.map { NSIndexPath(forRow: $0, inSection: 0) },
withRowAnimation: .Automatic)
tableView.deleteRowsAtIndexPaths(deletions.map { NSIndexPath(forRow: $0, inSection: 0) },
withRowAnimation: .Automatic)
tableView.reloadRowsAtIndexPaths(modifications.map { NSIndexPath(forRow: $0, inSection: 0) },
withRowAnimation: .Automatic)
tableView.endUpdates()
break
case .Error(let error):
// An error occurred while opening the Realm file on the background worker thread
fatalError("\(error)")
break
}
}
}
また、テーブルu DELETEALL()を歌う:
func clearTable() {
try! realm.write {
realm.deleteAll()
}
}
私は、これは 'Results'のAPIが不十分であることの場合だと思います。あなたは[GitHubの問題を提出してください](https:// github。com/realm/realm-cocoa/issues/new)この不足について言及していますか? – bdash
提出https://github.com/realm/realm-cocoa/issues/3579。ありがとう、@bdash –