123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- import UIKit
- import RealmSwift
- class Dog: Object {
- @objc dynamic var name = ""
- @objc dynamic var age = 0
- }
- class Person: Object {
- @objc dynamic var name = ""
- let dogs = List<Dog>()
- }
- #if !swift(>=4.2)
- extension UIApplication {
- typealias LaunchOptionsKey = UIApplicationLaunchOptionsKey
- }
- #endif
- @UIApplicationMain
- class AppDelegate: UIResponder, UIApplicationDelegate {
- var window: UIWindow?
- func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil) -> Bool {
- window = UIWindow(frame: UIScreen.main.bounds)
- window?.rootViewController = UIViewController()
- window?.makeKeyAndVisible()
- do {
- try FileManager.default.removeItem(at: Realm.Configuration.defaultConfiguration.fileURL!)
- } catch {}
-
- let mydog = Dog()
-
- mydog.name = "Rex"
- mydog.age = 9
- print("Name of dog: \(mydog.name)")
-
- let realm = try! Realm()
-
- realm.beginWrite()
- realm.add(mydog)
- try! realm.commitWrite()
-
- let results = realm.objects(Dog.self).filter(NSPredicate(format: "name contains 'x'"))
-
- let results2 = results.filter("age > 8")
- print("Number of dogs: \(results.count)")
- print("Dogs older than eight: \(results2.count)")
-
- let person = Person()
- person.name = "Tim"
- person.dogs.append(mydog)
- try! realm.write {
- realm.add(person)
- }
-
- DispatchQueue.global().async {
- autoreleasepool {
- let otherRealm = try! Realm()
- let otherResults = otherRealm.objects(Dog.self).filter(NSPredicate(format: "name contains 'Rex'"))
- print("Number of dogs \(otherResults.count)")
- }
- }
- return true
- }
- }
|