Protocols
The following protocols are available globally.
-
A homogenous collection of Realm-managed objects. Examples of conforming types include
See moreRLMArray
,RLMSet
,RLMResults
, andRLMLinkingObjects
.Declaration
Objective-C
@protocol RLMCollection <NSFastEnumeration, RLMThreadConfined>
Swift
protocol RLMCollection : NSFastEnumeration, RLMThreadConfined
-
Conforming protocol for a Geo-shape.
Declaration
Objective-C
@protocol RLMGeospatial
Swift
protocol RLMGeospatial
-
The
See moreRLMSectionedResult
protocol defines properties and methods common to bothRLMSectionedResults and RLMSection
Declaration
Objective-C
@protocol RLMSectionedResult <NSFastEnumeration, RLMThreadConfined>
Swift
protocol RLMSectionedResult : NSFastEnumeration, RLMThreadConfined
-
Objects of types which conform to
RLMThreadConfined
can be managed by a Realm, which will make them bound to a thread-specificRLMRealm
instance. Managed objects must be explicitly exported and imported to be passed between threads.Managed instances of objects conforming to this protocol can be converted to a thread-safe reference for transport between threads by passing to the
+[RLMThreadSafeReference referenceWithThreadConfined:]
constructor.Note that only types defined by Realm can meaningfully conform to this protocol, and defining new classes which attempt to conform to it will not make them work with
See moreRLMThreadSafeReference
.Declaration
Objective-C
@protocol RLMThreadConfined <NSObject>
Swift
protocol RLMThreadConfined : NSObjectProtocol
-
RLMValue is a property type which represents a polymorphic Realm value. This is similar to the usage of
AnyObject
/Any
in Swift.// A property on `MyObject` @property (nonatomic) id<RLMValue> myAnyValue; // A property on `AnotherObject` @property (nonatomic) id<RLMValue> myAnyValue; MyObject *myObject = [MyObject createInRealm:realm withValue:@[]]; myObject.myAnyValue = @1234; // underlying type is NSNumber. myObject.myAnyValue = @"hello"; // underlying type is NSString. AnotherObject *anotherObject = [AnotherObject createInRealm:realm withValue:@[]]; myObject.myAnyValue = anotherObject; // underlying type is RLMObject.
The following types conform to RLMValue:
See moreNSData
NSDate
NSNull
NSNumber
NSUUID
NSString
RLMObject
RLMObjectIdDeclaration
Objective-C
@protocol RLMValue
Swift
protocol RLMValue