読者です 読者をやめる 読者になる 読者になる

yoneapp@iPhoneアプリ開発

標高ワカールやニュースアプリ・スタートアップの支援を行うiOS&Railsエンジニアのブログ

Realm(Objective-C版をSwiftで使う)からRealmSwiftへの移行メモ

iOS Realm Swift

メモです。RealmSwiftはiOS8以上でないと使えません。

// Realm
let realm = RLMRealm.defaultRealm()
realm.transactionWithBlock { () -> Void in
    ...
}
// RealmSwift
let realm = Realm()
realm.write {
    ...
}

// Realm
dynamic var tweets = RLMArray(objectClassName: "Tweet")
// RealmSwift
dynamic var tweets = List<Tweet>()

// Realm
override static func ignoredProperties() -> [AnyObject]
// RealmSwift
override static func ignoredProperties() -> [String]

// Realm
Tweet.allObjects()
// RealmSwift
Realm().objects(Tweet)

// Realm
Tweet(forPrimaryKey: tweetId)
// RealmSwift
Realm().objectForPrimaryKey(Tweet.self, key: tweetId)

// Realm
realm.addOrUpdateObject(tweet)
// RealmSwift
realm.add(tweet, update: true)

// Realm
user.tweets.removeAllObjects()
// RealmSwift
realm.delete(user.tweets)

// Realm
user.tweets.addObject(newTweet)
// RealmSwift
user.tweets.append(newTweet) 

// Realm
if Int(tweets.indexOfObject(tweet)) == NSNotFound
// RealmSwift
tweets.indexOf(tweet) == nil

// Realm
var realmToken: RLMNotificationToken!
realmToken = realm.addNotificationBlock { (note :String!, realm: RLMRealm!) -> Void in
    ...
}
// RealmSwift
var realmToken: NotificationToken!
realmToken = realm.addNotificationBlock { notification, realm in
    ...
}