The base class for storing and processing a theme set.


An array of the postfix strings that serve as overrides for this platform. For example, the postfix '_iPad' will result in all keys ending with that string being chosen over those that do not.
public platformOverridePostfixes [String]? { get }


Initializes the theme set object using the given override postfixes.
@param platformOverridePostfixes : The array of override postfix strings.
@returns The initialized object.
- (nonnull instancetype)initWithPlatformOverridePostfixes:(nullable NSArray<NSString *> *)platformOverridePostfixes;

Resolves platform overrides in the given property list.
@param propertyList : The property list to resolve the overrides in.
@returns The resulting property list.
- (nonnull id)resolvePlatformOverridesInPropertyList:(nonnull id)propertyList;

Determines whether a given string is a valid constant reference. It also checks the type of the given value, and thus anything can be passed to it.
@param value : The value to check.
@returns Whether or not the given value is a valid constant reference string.
+ (BOOL)isReferenceString:(nonnull id)value;

Extracts the name that is referred to by the given reference string e.g. 'ref://color-background' > 'color-background'.
@param referenceString : The reference string.
@returns The extracted name.
+ (nonnull NSString *)nameFromReferenceString:(nonnull NSString *)referenceString;

Extracts the name of the reference that the dictionary should inherit from. Provides an error where one is specified but is invalid.
@param dictionary : The dictionary to check.
@param error : A pointer to an NSError that will be assigned in the case of an error.
@returns The extracted reference name, or nil.
+ (nullable NSString *)inheritanceReferenceNameWithDictionary:(nonnull NSDictionary<NSString *, NSString *> *)dictionary error:(NSError * _Nullable * _Nullable)error;

Resolves the inheritance reference of a given dictionary.
@param dictionary : The dictionary to resolve the inheritance reference of.
@param lookup : A block that will be used to retrieve the resolved value for the given name.
@param error : A pointer to an NSError that will be assigned in the case of an error.
+ (void)resolveInheritanceReferenceInDictionary:(nonnull NSMutableDictionary<NSString *, NSString *> *)dictionary