リスト
public final class List<Element> : RLMSwiftCollectionBase where Element : RealmCollectionValue
extension List: ObservableObject, RealmSubscribable
extension List: RealmCollection
extension List: MutableCollection
extension List: Decodable where Element: Decodable
extension List: Encodable where Element: Encodable
List
は、対多関係を定義するために使用される Realm のコンテナ タイプです。
Swift のArray
と同様に、 List
は、保存する型をパラメータ化するジェネリック型です。 これは、 Object
サブクラスまたは次のいずれかのタイプになります。 Bool
、 Int
、 Int8
、 Int16
、 Int32
、 Int64
、 Float
、 Double
、 String
、 Data
、 Date
、 Decimal128
、 ObjectId
(およびこれらの任意バージョン)
Swift のネイティブ コレクションとは異なり、 List
は参照型であり、それを管理する Realm が読み取り専用として開かれている場合にのみ不変です。
Results<Element>
と同じ述語でリストをフィルタリングおよび並べ替えることができます。
Object
サブクラスで定義されているList
型のプロパティは、 let
として宣言する必要があります。また、 dynamic
にすることはできません。
-
リストを管理する Realm、またはリストが管理されていない場合は
nil
。宣言
Swift
public var realm: Realm? { get }
-
リストがアクセスできなくなっているかどうかを示します。
宣言
Swift
public var isInvalidated: Bool { get }
-
タイプ
Element
の Realm モデル オブジェクトを保持するList
を作成します。宣言
Swift
public override init()
-
このリスト内のオブジェクトの数を返します。
宣言
Swift
public var count: Int { get }
-
リスト内のオブジェクトのインデックスを返します。オブジェクトが存在しない場合は
nil
を返します。宣言
Swift
public func index(of object: Element) -> Int?
パラメーター
object
検索対象のオブジェクト。
-
述語に一致するリスト内の最初のオブジェクトのインデックスを返します。一致するオブジェクトがない場合は
nil
を返します。宣言
Swift
public func index(matching predicate: NSPredicate) -> Int?
パラメーター
predicate
オブジェクトをフィルタリングする述語。
-
指定されたインデックスのオブジェクトを返します(get)、または指定されたインデックスのオブジェクトを置き換えます(set)。
警告
書込みトランザクション中にのみオブジェクトを設定できます。
宣言
Swift
public subscript(position: Int) -> Element { get set }
パラメーター
index
検索または置換するオブジェクトのインデックス。
-
リスト内の最初のオブジェクトを返します。リストが空の場合は
nil
を返します。宣言
Swift
public var first: Element? { get }
-
リスト内の最後のオブジェクトを返します。リストが空の場合は
nil
を返します。宣言
Swift
public var last: Element? { get }
-
コレクションの各オブジェクトで
key
を使用してvalueForKey(_:)
を呼び出した結果を含むArray
を返します。宣言
Swift
@nonobjc public func value(forKey key: String) -> [AnyObject]
-
コレクションの各オブジェクトで
keyPath
を使用してvalueForKeyPath(_:)
を呼び出した結果を含むArray
を返します。宣言
Swift
@nonobjc public func value(forKeyPath keyPath: String) -> [AnyObject]
パラメーター
keyPath
値が必要なプロパティへのキー パス。
-
指定された
value
とkey
を使用して、コレクション内の各オブジェクトでsetValue(_:forKey:)
を呼び出します。警告
このメソッドは、書込みトランザクション中にのみ呼び出すことができます。
宣言
Swift
public override func setValue(_ value: Any?, forKey key: String)
パラメーター
value
オブジェクト値。
key
各オブジェクトに値を設定するプロパティの名前。
-
リスト内のオブジェクトを含む
Results
をソートされた状態で返します。Objects are sorted based on the values of the given key path. たとえば、
Student
のリストをage
プロパティに基づいて、小さいものから古い順に並べ替えるには、students.sorted(byKeyPath: "age", ascending: true)
を呼び出します。警告
リストは、ブール値、
Date
、NSDate
、単一および倍精度浮動小数点、整数、および string 型のプロパティでのみソートできます。宣言
Swift
public func sorted(byKeyPath keyPath: String, ascending: Bool = true) -> Results<Element>
パラメーター
keyPath
ソートするキー パス。
ascending
並べ替える方向。
-
リスト内のオブジェクトを含む
Results
をソートされた状態で返します。警告
リストは、ブール値、
Date
、NSDate
、単一および倍精度浮動小数点、整数、および string 型のプロパティでのみソートできます。詳細は、次を参照してください:
宣言
Swift
public func sorted<S: Sequence>(by sortDescriptors: S) -> Results<Element> where S.Iterator.Element == SortDescriptor
-
リスト内のすべてのオブジェクト間で指定されたプロパティの最小値(最小値)を返します。リストが空の場合は
nil
を返します。警告
MinMaxType
プロトコルに準拠するタイプのプロパティのみを指定できます。宣言
Swift
public func min<T>(ofProperty property: String) -> T? where T : MinMaxType
パラメーター
property
最小値が必要なプロパティの名前。
-
リスト内のすべてのオブジェクト間で指定されたプロパティの最大値(最高値)を返します。リストが空の場合は
nil
を返します。警告
MinMaxType
プロトコルに準拠するタイプのプロパティのみを指定できます。宣言
Swift
public func max<T>(ofProperty property: String) -> T? where T : MinMaxType
パラメーター
property
最大値が必要なプロパティの名前。
-
リスト内のすべてのオブジェクトの指定されたプロパティの値の合計を返します。
警告
AddableType
プロトコルに準拠するタイプのプロパティのみを指定できます。宣言
Swift
public func sum<T>(ofProperty property: String) -> T where T : AddableType
パラメーター
property
値を合計するプロパティの名前。
-
リスト内のすべてのオブジェクトにわたる指定されたプロパティの平均値を返します。リストが空の場合は
nil
を返します。警告
AddableType
プロトコルに準拠するタイプのプロパティのみを指定できます。宣言
Swift
public func average<T>(ofProperty property: String) -> T? where T : AddableType
パラメーター
property
平均値を計算するプロパティの名前。
-
指定されたオブジェクトをリストの末尾に追加します。
オブジェクトがレシーバーとは異なる Realm によって管理されている場合は、コピーが作成され、レシーバーを管理する Realm に追加されます。
警告
このメソッドは、書込みトランザクション中にのみ呼び出されます。
宣言
Swift
public func append(_ object: Element)
パラメーター
object
オブジェクト。
-
指定されたシーケンス内のオブジェクトをリストの末尾に追加します。
警告
このメソッドは、書込みトランザクション中にのみ呼び出されます。宣言
Swift
public func append<S>(objectsIn objects: S) where Element == S.Element, S : Sequence
-
指定されたインデックスにオブジェクトを挿入します。
警告
このメソッドは、書込みトランザクション中にのみ呼び出されます。
警告
このメソッドは、無効なインデックスで呼び出されると例外をスローします。
宣言
Swift
public func insert(_ object: Element, at index: Int)
パラメーター
object
オブジェクト。
index
オブジェクトを挿入するインデックス。
-
指定されたインデックスにあるオブジェクトを削除します。 オブジェクトは、それを管理する Realm から削除されません。
警告
このメソッドは、書込みトランザクション中にのみ呼び出されます。
警告
このメソッドは、無効なインデックスで呼び出されると例外をスローします。
宣言
Swift
public func remove(at index: Int)
パラメーター
index
オブジェクトを削除するインデックス。
-
すべてのオブジェクトをリストから削除します。 オブジェクトは、それらを管理する Realm から削除されません。
警告
このメソッドは、書込みトランザクション中にのみ呼び出されます。宣言
Swift
public func removeAll()
-
指定されたインデックス内のオブジェクトを新しいオブジェクトに置き換えます。
警告
このメソッドは、書込みトランザクション中にのみ呼び出されます。
警告
このメソッドは、無効なインデックスで呼び出されると例外をスローします。
宣言
Swift
public func replace(index: Int, object: Element)
パラメーター
index
置き換えられるオブジェクトのインデックス。
object
オブジェクト。
-
指定されたソース インデックスにあるオブジェクトを指定された宛先インデックスに移動します。
警告
このメソッドは、書込みトランザクション中にのみ呼び出されます。
警告
このメソッドは、無効なインデックスで呼び出された場合、例外をスローします。
宣言
Swift
public func move(from: Int, to: Int)
パラメーター
from
移動するオブジェクトのインデックス。
to
from
のオブジェクトを移動するインデックス。 -
指定されたインデックスでリスト内のオブジェクトを交換します。
警告
このメソッドは、書込みトランザクション中にのみ呼び出されます。
警告
このメソッドは、無効なインデックスで呼び出された場合、例外をスローします。
宣言
Swift
public func swapAt(_ index1: Int, _ index2: Int)
パラメーター
index1
インデックス
index2
のオブジェクトを置き換えるオブジェクトのインデックス。index2
インデックス
index1
のオブジェクトを置き換えるオブジェクトのインデックス。
-
コレクションが変更されるたびに呼び出されるブロックを登録します。
ブロックは初期結果とは非同期に呼び出され、コレクション内のいずれかのオブジェクトまたはコレクション内のどのオブジェクトのいずれかを変更する書込みトランザクションごとに再度呼び出されます。
ブロックに渡される
change
パラメータは、各書込みトランザクション中に追加、削除、または変更されたオブジェクトをコレクション内のインデックスの形式で報告します。 提供される変更情報の詳細と、その変更情報を使用してUITableView
をアップデートする方法の例については、RealmCollectionChange
のドキュメントを参照してください。ブロックが呼び出される時点で、コレクションは完全に評価され、最新の状態になります。また、同じスレッドで書込みトランザクションを実行したり、
realm.refresh()
を明示的に呼び出したりしない限り、アクセスに関するブロッキングは実行されません動作する。キューが指定されていない場合、通知は標準の実行ループを介して配信されるため、実行ループが他のアクティビティによってブロックされている間は通知を配信できません。 キューが指定されている場合、代わりにそのキューに通知が配信されます。 通知をすぐに配信できない場合は、複数の通知が 1 つの通知に統合されることがあります。 これには、初期コレクションの通知を含めることができます。
たとえば、次のコードは通知ブロックを追加した後すぐに書込みトランザクションを実行するため、最初の通知が最初に配信される可能性はありません。 その結果、最初の通知には、書込みトランザクション後の Realm の状態が反映されます。
let results = realm.objects(Dog.self) print("dogs.count: \(dogs?.count)") // => 0 let token = dogs.observe { changes in switch changes { case .initial(let dogs): // Will print "dogs.count: 1" print("dogs.count: \(dogs.count)") break case .update: // Will not be hit in this example break case .error: break } } try! realm.write { let dog = Dog() dog.name = "Rex" person.dogs.append(dog) } // end of run loop execution context
アップデートをブロックに送信する場合は、返されたトークンを保持する必要があります。 更新の受信を停止するには、トークンで
invalidate()
を呼び出します。警告
このメソッドは、書込みトランザクション中、または Realm を含む が読み取り専用の場合に呼び出すことができません。
宣言
Swift
public func observe(on queue: DispatchQueue? = nil, _ block: @escaping (RealmCollectionChange<List>) -> Void) -> NotificationToken
パラメーター
queue
通知を受信するシリアル ディスパッチ キュー。
nil
の場合、通知は現在のスレッドに配信されます。block
変更が発生するたびに呼び出されるブロック。
戻り値
更新を配信する限り保持する必要があるトークン。
-
宣言
Swift
public var isFrozen: Bool { get }
-
宣言
Swift
public func freeze() -> List
-
宣言
Swift
public func thaw() -> List?
-
リストに含まれるオブジェクトの、人間が判読可能な説明を返します。
宣言
Swift
@objc public override var description: String { get }
-
コレクションが変更されるたびに Vid を発行する出版社。
名前に関係なく、コレクションが変更された後にこれが実際に発行します。
宣言
Swift
public var objectWillChange: RealmPublishers.WillChange<List> { get }
-
リスト内に保存されているオブジェクトの型。
宣言
Swift
public typealias ElementType = Element
-
List
で連続する要素を生成するRLMIterator
を返します。宣言
Swift
public func makeIterator() -> RLMIterator<Element>
-
指定された
subRange
の要素をnewElements
に置き換えます。宣言
Swift
public func replaceSubrange<C: Collection, R>(_ subrange: R, with newElements: C) where C.Iterator.Element == Element, R: RangeExpression, List<Element>.Index == R.Bound
パラメーター
subrange
置き換えられる要素の範囲。
newElements
リストに挿入される新しい要素。
-
空でないコレクション内の最初の要素の位置。 空のコレクション内の endIndex と同じ。
宣言
Swift
public var startIndex: Int { get }
-
コレクションの「終了を過ぎた」位置。 endIndex はサブスクリプトへの有効な引数ではなく、成功します()の 0 個以上のアプリケーションによって startIndex から常にアクセス可能です。
宣言
Swift
public var endIndex: Int { get }
-
宣言
Swift
public func index(after i: Int) -> Int
-
宣言
Swift
public func index(before i: Int) -> Int
-
宣言
Swift
public typealias SubSequence = Slice<List>
-
指定された範囲のオブジェクトを返します(get)、または指定された範囲のオブジェクトを新しいオブジェクトに置き換えます(set)。
警告
オブジェクトは、書込みトランザクション中にのみ設定できます。
宣言
Swift
public subscript(bounds: Range<Int>) -> SubSequence { get set }
パラメーター
index
検索または置換するオブジェクトのインデックス。
-
指定した数のオブジェクトをリストの先頭から削除します。 オブジェクトは、それらを管理する Realm から削除されません。
警告
このメソッドは、書込みトランザクション中にのみ呼び出されます。宣言
Swift
public func removeFirst(_ number: Int = 1)
-
指定した数のオブジェクトをリストの末尾から削除します。 オブジェクトは、それらを管理する Realm から削除されません。
警告
このメソッドは、書込みトランザクション中にのみ呼び出されます。宣言
Swift
public func removeLast(_ number: Int = 1)
-
指定されたコレクション内のアイテムをリストの指定された位置に挿入します。
警告
このメソッドは、書込みトランザクション中にのみ呼び出されます。宣言
Swift
public func insert<C>(contentsOf newElements: C, at i: Int) where Element == C.Element, C : Collection
-
指定された範囲にあるオブジェクトをリストから削除します。
警告
このメソッドは、書込みトランザクション中にのみ呼び出されます。宣言
Swift
public func removeSubrange<R>(_ boundsExpression: R) where R : RangeExpression, R.Bound == Int
-
リスト内の最小(最小)値を返します。リストが空の場合は
nil
を返します。宣言
Swift
public func min() -> Element?
-
リスト内の最大(最高)値を返します。リストが空の場合は
nil
を返します。宣言
Swift
public func max() -> Element?
-
リスト内の値の合計を返します。
宣言
Swift
public func sum() -> Element
-
リスト内の値の平均を返します。リストが空の場合は
nil
を返します。宣言
Swift
public func average<T>() -> T? where T : AddableType
-
宣言
Swift
public convenience init(from decoder: Decoder) throws
-
宣言
Swift
public func encode(to encoder: Encoder) throws