# ApptimizeVariable

    @interface ApptimizeVariable : NSObject

This interface is used to create and retrieve dynamic variables for both experiments and Feature Variables.

The factory methods are used to create and register dynamic variables with the SDK. As they need to be declared prior to setting up an experiment, they should be called as early as possible during app execution, such as in `didFinishLaunchingWithOptions`.

All the factory methods return a reference to the created dynamic variable.

As dynamic variables are expected to be declared ahead of time during app startup, getters are provided to retrieve those dynamic variables at time of use.

### Factory methods

- `+stringWithName:andDefaultString:`

  Create a string dynamic variable with a specified name and default value.

  See

  `+[ApptimizeVariable getStringForName:]`

  #### Declaration

  Objective-C

      + (ApptimizeVariableString *_Nullable)stringWithName:(NSString *_Nonnull)name
                                          andDefaultString:
                                              (NSString *_Nonnull)defaultString;

  Swift

      class func makeString(name: String, defaultString: String) -> ApptimizeVariableString?

  #### Parameters

  `name` | The name of the dynamic variable to create.
  `defaultString` | The default NSString for this dynamic variable.

  #### Return Value

  Returns a new ApptimizeVariableString if no variable has been created before with this name. If an ApptimizeVariableString already exists with this name it returns the existing string variable but does not update the default value.
  Returns nil if a variable of another type already exists with this name.

- `+boolWithName:andDefaultBool:`

  Create a bool dynamic variable with a specified name and default value.

  See

  `+[ApptimizeVariable getBoolForName:]`

  #### Declaration

  Objective-C

      + (ApptimizeVariableBool *_Nullable)boolWithName:(NSString *_Nonnull)name
                                        andDefaultBool:(BOOL)defaultBool;

  Swift

      class func makeBool(name: String, defaultBool: Bool) -> ApptimizeVariableBool?

  #### Parameters

  `name` | The name of the dynamic variable to create.
  `defaultBool` | The default BOOL for this dynamic variable.

  #### Return Value

  Returns a new ApptimizeVariableBool if no variable has been created before with this name. If an ApptimizeVariableBool already exists with this name it returns the existing bool variable but does not update the default value.
  Returns nil if a variable of another type already exists with this name.

- `+boolWithName:andDefaultNumber:`

  Create a bool dynamic variable with a specified name and default value.

  See

  `+[ApptimizeVariable getBoolForName:]`

  #### Declaration

  Objective-C

      + (ApptimizeVariableBool *_Nullable)boolWithName:(NSString *_Nonnull)name
                                      andDefaultNumber:
                                          (NSNumber *_Nonnull)defaultNumber;

  Swift

      class func makeBool(name: String, defaultNumber: NSNumber) -> ApptimizeVariableBool?

  #### Parameters

  `name` | The name of the dynamic variable to create.
  `defaultNumber` | The default NSNumber (containing a BOOL) for this dynamic variable.

  #### Return Value

  Returns a new ApptimizeVariableBool if no variable has been created before with this name. If an ApptimizeVariableBool already exists with this name it returns the existing bool variable but does not update the default value.
  Returns nil if a variable of another type already exists with this name.

- `+integerWithName:andDefaultInteger:`

  Create an integer dynamic variable with a specified name and default value.

  See

  `+[ApptimizeVariable getIntegerForName:]`

  #### Declaration

  Objective-C

      + (ApptimizeVariableInteger *_Nullable)integerWithName:(NSString *_Nonnull)name
                                           andDefaultInteger:
                                               (NSInteger)defaultInteger;

  Swift

      class func makeInteger(name: String, defaultInteger: Int) -> ApptimizeVariableInteger?

  #### Parameters

  `name` | The name of the dynamic variable to create.
  `defaultInteger` | The default NSInteger for this dynamic variable.

  #### Return Value

  Returns a new ApptimizeVariableInteger if no variable has been created before with this name. If an ApptimizeVariableInteger already exists with this name it returns the existing integer variable but does not update the default value.
  Returns nil if a variable of another type already exists with this name.

- `+integerWithName:andDefaultUnsignedInteger:`

  Create an integer dynamic variable with a specified name and default value.

  See

  `+[ApptimizeVariable getIntegerForName:]`

  #### Declaration

  Objective-C

      + (ApptimizeVariableInteger *_Nullable)integerWithName:(NSString *_Nonnull)name
                                   andDefaultUnsignedInteger:
                                       (NSUInteger)defaultUnsignedInteger;

  Swift

      class func makeInteger(name: String, defaultUnsignedInteger: UInt) -> ApptimizeVariableInteger?

  #### Parameters

  `name` | The name of the dynamic variable to create.
  `defaultUnsignedInteger` | The default NSUInteger for this dynamic variable.

  #### Return Value

  Returns a new ApptimizeVariableInteger if no variable has been created before with this name. If an ApptimizeVariableInteger already exists with this name it returns the existing integer variable but does not update the default value.
  Returns nil if a variable of another type already exists with this name.

- `+integerWithName:andDefaultNumber:`

  Create an integer dynamic variable with a specified name and default value.

  See

  `+[ApptimizeVariable getIntegerForName:]`

  #### Declaration

  Objective-C

      + (ApptimizeVariableInteger *_Nullable)integerWithName:(NSString *_Nonnull)name
                                            andDefaultNumber:
                                                (NSNumber *_Nonnull)defaultNumber;

  Swift

      class func makeInteger(name: String, defaultNumber: NSNumber) -> ApptimizeVariableInteger?

  #### Parameters

  `name` | The name of the dynamic variable to create.
  `defaultNumber` | The default NSNumber (containing an NSInteger or NSUInteger) for this dynamic variable.

  #### Return Value

  Returns a new ApptimizeVariableInteger if no variable has been created before with this name. If an ApptimizeVariableInteger already exists with this name it returns the existing integer variable but does not update the default value.
  Returns nil if a variable of another type already exists with this name.

- `+doubleWithName:andDefaultDouble:`

  Create a double dynamic variable with a specified name and default value.

  See

  `+[ApptimizeVariable getDoubleForName:]`

  #### Declaration

  Objective-C

      + (ApptimizeVariableDouble *_Nullable)doubleWithName:(NSString *_Nonnull)name
                                          andDefaultDouble:(double)defaultDouble;

  Swift

      class func makeDouble(name: String, defaultDouble: Double) -> ApptimizeVariableDouble?

  #### Parameters

  `name` | The name of the dynamic variable to create.
  `defaultDouble` | The default double for this dynamic variable.

  #### Return Value

  Returns a new ApptimizeVariableDouble if no variable has been created before with this name. If an ApptimizeVariableDouble already exists with this name it returns the existing double variable but does not update the default value.
  Returns nil if a variable of another type already exists with this name.

- `+doubleWithName:andDefaultNumber:`

  Create a double dynamic variable with a specified name and default value.

  See

  `+[ApptimizeVariable getDoubleForName:]`

  #### Declaration

  Objective-C

      + (ApptimizeVariableDouble *_Nullable)doubleWithName:(NSString *_Nonnull)name
                                          andDefaultNumber:
                                              (NSNumber *_Nonnull)defaultNumber;

  Swift

      class func makeDouble(name: String, defaultNumber: NSNumber) -> ApptimizeVariableDouble?

  #### Parameters

  `name` | The name of the dynamic variable to create.
  `defaultNumber` | The default NSNumber (containing a double) for this dynamic variable.

  #### Return Value

  Returns a new ApptimizeVariableDouble if no variable has been created before with this name. If an ApptimizeVariableDouble already exists with this name it returns the existing double variable but does not update the default value.
  Returns nil if a variable of another type already exists with this name.

- `+stringArrayWithName:andDefaultArray:`

  Create a dynamic variable of an array containing strings with a specified name and default value.

  See

  `+[ApptimizeVariable getStringArrayForName:]`

  #### Declaration

  Objective-C

      + (ApptimizeVariableArray<NSString *> *_Nullable)
          stringArrayWithName:(NSString *_Nonnull)name
              andDefaultArray:(NSArray<NSString *> *_Nonnull)defaultStringArray;

  Swift

      class func makeStringArray(name: String, defaultStringArray: [String]) -> ApptimizeVariableArray<NSString>?

  #### Parameters

  `name` | The name of the dynamic variable to create.
  `defaultStringArray` | The default NSArray (containing NSStrings) for this dynamic variable.

  #### Return Value

  Returns a new ApptimizeVariableArray if no variable has been created before with this name. If an ApptimizeVariableArray containing strings already exists with this name it returns the existing string array variable but does not update the default value.
  Returns nil if a variable of another type already exists with this name.

- `+boolArrayWithName:andDefaultArray:`

  Create a dynamic variable of an array containing bools with a specified name and default value.

  See

  `+[ApptimizeVariable getBoolArrayForName:]`

  #### Declaration

  Objective-C

      + (ApptimizeVariableArray<NSNumber *> *_Nullable)
          boolArrayWithName:(NSString *_Nonnull)name
            andDefaultArray:(NSArray<NSNumber *> *_Nonnull)defaultBoolArray;

  Swift

      class func makeBoolArray(name: String, defaultBoolArray: [NSNumber]) -> ApptimizeVariableArray<NSNumber>?

  #### Parameters

  `name` | The name of the dynamic variable to create.
  `defaultBoolArray` | The default NSArray (containing NSNumbers of BOOLs) for this dynamic variable.

  #### Return Value

  Returns a new ApptimizeVariableArray if no variable has been created before with this name. If an ApptimizeVariableArray containing bools already exists with this name it returns the existing bool array variable but does not update the default value.
  Returns nil if a variable of another type already exists with this name.

- `+integerArrayWithName:andDefaultArray:`

  Create a dynamic variable of an array containing integers with a specified name and default value.

  See

  `+[ApptimizeVariable getIntegerArrayForName:]`

  #### Declaration

  Objective-C

      + (ApptimizeVariableArray<NSNumber *> *_Nullable)
          integerArrayWithName:(NSString *_Nonnull)name
               andDefaultArray:(NSArray<NSNumber *> *_Nonnull)defaultIntegerArray;

  Swift

      class func makeIntegerArray(name: String, defaultIntegerArray: [NSNumber]) -> ApptimizeVariableArray<NSNumber>?

  #### Parameters

  `name` | The name of the dynamic variable to create.
  `defaultIntegerArray` | The default NSArray (containing NSNumbers of integers) for this dynamic variable.

  #### Return Value

  Returns a new ApptimizeVariableArray if no variable has been created before with this name. If an ApptimizeVariableArray containing integers already exists with this name it returns the existing integer array variable but does not update the default value.
  Returns nil if a variable of another type already exists with this name.

- `+doubleArrayWithName:andDefaultArray:`

  Create a dynamic variable of an array containing doubles with a specified name and default value.

  See

  `+[ApptimizeVariable getDoubleArrayForName:]`

  #### Declaration

  Objective-C

      + (ApptimizeVariableArray<NSNumber *> *_Nullable)
          doubleArrayWithName:(NSString *_Nonnull)name
              andDefaultArray:(NSArray<NSNumber *> *_Nonnull)defaultDoubleArray;

  Swift

      class func makeDoubleArray(name: String, defaultDoubleArray: [NSNumber]) -> ApptimizeVariableArray<NSNumber>?

  #### Parameters

  `name` | The name of the dynamic variable to create.
  `defaultDoubleArray` | The default NSArray (containing NSNumbers of doubles) for this dynamic variable.

  #### Return Value

  Returns a new ApptimizeVariableArray if no variable has been created before with this name. If an ApptimizeVariableArray containing doubles already exists with this name it returns the existing double array variable but does not update the default value.
  Returns nil if a variable of another type already exists with this name.

- `+stringDictionaryWithName:andDefaultDictionary:`

  Create a dynamic variable of an dictionary with key/value pairs of string/string with a specified name and default value.

  See

  `+[ApptimizeVariable getStringDictionaryForName:]`

  #### Declaration

  Objective-C

      + (ApptimizeVariableDictionary<NSString *> *_Nullable)
          stringDictionaryWithName:(NSString *_Nonnull)name
              andDefaultDictionary:(NSDictionary<NSString *, NSString *> *_Nonnull)
                                       defaultStringDictionary;

  Swift

      class func makeStringDictionary(name: String, defaultStringDictionary: [String : String]) -> ApptimizeVariableDictionary<NSString>?

  #### Parameters

  `name` | The name of the dynamic variable to create.
  `defaultStringDictionary` | The default NSDictionary of NSStrings keyed with NSStrings for this dynamic variable.

  #### Return Value

  Returns a new ApptimizeVariableDictionary if no variable has been created before with this name. If an ApptimizeVariableDictionary containing strings already exists with this name it returns the existing string dictionary variable but does not update the default value.
  Returns nil if a variable of another type already exists with this name.

- `+boolDictionaryWithName:andDefaultDictionary:`

  Create a dynamic variable of an dictionary with key/value pairs of string/bool with a specified name and default value.

  See

  `+[ApptimizeVariable getBoolDictionaryForName:]`

  #### Declaration

  Objective-C

      + (ApptimizeVariableDictionary<NSNumber *> *_Nullable)
          boolDictionaryWithName:(NSString *_Nonnull)name
            andDefaultDictionary:
                (NSDictionary<NSString *, NSNumber *> *_Nonnull)defaultBoolDictionary;

  Swift

      class func makeBoolDictionary(name: String, defaultBoolDictionary: [String : NSNumber]) -> ApptimizeVariableDictionary<NSNumber>?

  #### Parameters

  `name` | The name of the dynamic variable to create.
  `defaultBoolDictionary` | The default NSDictionary of NSNumbers (containing BOOLs) keyed with NSStrings for this dynamic variable.

  #### Return Value

  Returns a new ApptimizeVariableDictionary if no variable has been created before with this name. If an ApptimizeVariableDictionary containing bools already exists with this name it returns the existing bool dictionary variable but does not update the default value.
  Returns nil if a variable of another type already exists with this name.

- `+integerDictionaryWithName:andDefaultDictionary:`

  Create a dynamic variable of an dictionary with key/value pairs of string/integer with a specified name and default value.

  See

  `+[ApptimizeVariable getIntegerDictionaryForName:]`

  #### Declaration

  Objective-C

      + (ApptimizeVariableDictionary<NSNumber *> *_Nullable)
          integerDictionaryWithName:(NSString *_Nonnull)name
               andDefaultDictionary:(NSDictionary<NSString *, NSNumber *> *_Nonnull)
                                        defaultIntegerDictionary;

  Swift

      class func makeIntegerDictionary(name: String, defaultIntegerDictionary: [String : NSNumber]) -> ApptimizeVariableDictionary<NSNumber>?

  #### Parameters

  `name` | The name of the dynamic variable to create.
  `defaultIntegerDictionary` | The default NSDictionary of NSNumbers (containing integers) keyed with NSStrings for this dynamic variable.

  #### Return Value

  Returns a new ApptimizeVariableDictionary if no variable has been created before with this name. If an ApptimizeVariableDictionary containing integers already exists with this name it returns the existing integer dictionary variable but does not update the default value.
  Returns nil if a variable of another type already exists with this name.

- `+doubleDictionaryWithName:andDefaultDictionary:`

  Create a dynamic variable of an dictionary with key/value pairs of string/double with a specified name and default value.

  See

  `+[ApptimizeVariable getDoubleDictionaryForName:]`

  #### Declaration

  Objective-C

      + (ApptimizeVariableDictionary<NSNumber *> *_Nullable)
          doubleDictionaryWithName:(NSString *_Nonnull)name
              andDefaultDictionary:(NSDictionary<NSString *, NSNumber *> *_Nonnull)
                                       defaultDoubleDictionary;

  Swift

      class func makeDoubleDictionary(name: String, defaultDoubleDictionary: [String : NSNumber]) -> ApptimizeVariableDictionary<NSNumber>?

  #### Parameters

  `name` | The name of the dynamic variable to create.
  `defaultDoubleDictionary` | The default NSDictionary of NSNumbers (containing doubles) keyed with NSStrings for this dynamic variable.

  #### Return Value

  Returns a new ApptimizeVariableDictionary if no variable has been created before with this name. If an ApptimizeVariableDictionary containing doubles already exists with this name it returns the existing double dictionary variable but does not update the default value.
  Returns nil if a variable of another type already exists with this name.

### Getters

- `+getStringForName:`

  Retrieve a string dynamic variable that has already been declared.

  See

  `+[ApptimizeVariable stringWithName:andDefaultString:]`

  #### Declaration

  Objective-C

      + (ApptimizeVariableString *_Nullable)getStringForName:(NSString *_Nonnull)name;

  Swift

      class func getString(name: String) -> ApptimizeVariableString?

  #### Parameters

  `name` | The name of the dynamic variable to retrieve.

  #### Return Value

  Returns an ApptimizeVariableString if one has already been created with the specified name.
  Returns nil if no such variable exists with this name.

- `+getBoolForName:`

  Retrieve a bool dynamic variable that has already been declared.

  See

  `+[ApptimizeVariable boolWithName:andDefaultBool:]`

  #### Declaration

  Objective-C

      + (ApptimizeVariableBool *_Nullable)getBoolForName:(NSString *_Nonnull)name;

  Swift

      class func getBool(name: String) -> ApptimizeVariableBool?

  #### Parameters

  `name` | The name of the dynamic variable to retrieve.

  #### Return Value

  Returns an ApptimizeVariableBool if one has already been created with the specified name.
  Returns nil if no such variable exists with this name.

- `+getIntegerForName:`

  Retrieve an integer dynamic variable that has already been declared.

  See

  `+[ApptimizeVariable integerWithName:andDefaultInteger:]`

  #### Declaration

  Objective-C

      + (ApptimizeVariableInteger *_Nullable)getIntegerForName:
          (NSString *_Nonnull)name;

  Swift

      class func getInteger(name: String) -> ApptimizeVariableInteger?

  #### Parameters

  `name` | The name of the dynamic variable to retrieve.

  #### Return Value

  Returns an ApptimizeVariableInteger if one has already been created with the specified name.
  Returns nil if no such variable exists with this name.

- `+getDoubleForName:`

  Retrieve a double dynamic variable that has already been declared.

  See

  `+[ApptimizeVariable doubleWithName:andDefaultDouble:]`

  #### Declaration

  Objective-C

      + (ApptimizeVariableDouble *_Nullable)getDoubleForName:(NSString *_Nonnull)name;

  Swift

      class func getDouble(name: String) -> ApptimizeVariableDouble?

  #### Parameters

  `name` | The name of the dynamic variable to retrieve.

  #### Return Value

  Returns an ApptimizeVariableDouble if one has already been created with the specified name.
  Returns nil if no such variable exists with this name.

- `+getStringArrayForName:`

  Retrieve a string array dynamic variable that has already been declared.

  See

  `+[ApptimizeVariable stringArrayWithName:andDefaultStringArray:]`

  #### Declaration

  Objective-C

      + (ApptimizeVariableArray<NSString *> *_Nullable)getStringArrayForName:
          (NSString *_Nonnull)name;

  Swift

      class func getStringArray(name: String) -> ApptimizeVariableArray<NSString>?

  #### Parameters

  `name` | The name of the dynamic variable to retrieve.

  #### Return Value

  Returns an ApptimizeVariableArray if one has already been created with the specified name which contains strings.
  Returns nil if no such variable exists with this name.

- `+getBoolArrayForName:`

  Retrieve a bool array dynamic variable that has already been declared.

  See

  `+[ApptimizeVariable boolArrayWithName:andDefaultBoolArray:]`

  #### Declaration

  Objective-C

      + (ApptimizeVariableArray<NSNumber *> *_Nullable)getBoolArrayForName:
          (NSString *_Nonnull)name;

  Swift

      class func getBoolArray(name: String) -> ApptimizeVariableArray<NSNumber>?

  #### Parameters

  `name` | The name of the dynamic variable to retrieve.

  #### Return Value

  Returns an ApptimizeVariableArray if one has already been created with the specified name which contains bools.
  Returns nil if no such variable exists with this name.

- `+getIntegerArrayForName:`

  Retrieve a integer array dynamic variable that has already been declared.

  See

  `+[ApptimizeVariable integerArrayWithName:andDefaultIntegerArray:]`

  #### Declaration

  Objective-C

      + (ApptimizeVariableArray<NSNumber *> *_Nullable)getIntegerArrayForName:
          (NSString *_Nonnull)name;

  Swift

      class func getIntegerArray(name: String) -> ApptimizeVariableArray<NSNumber>?

  #### Parameters

  `name` | The name of the dynamic variable to retrieve.

  #### Return Value

  Returns an ApptimizeVariableArray if one has already been created with the specified name which contains integers.
  Returns nil if no such variable exists with this name.

- `+getDoubleArrayForName:`

  Retrieve a double array dynamic variable that has already been declared.

  See

  `+[ApptimizeVariable doubleArrayWithName:andDefaultDoubleArray:]`

  #### Declaration

  Objective-C

      + (ApptimizeVariableArray<NSNumber *> *_Nullable)getDoubleArrayForName:
          (NSString *_Nonnull)name;

  Swift

      class func getDoubleArray(name: String) -> ApptimizeVariableArray<NSNumber>?

  #### Parameters

  `name` | The name of the dynamic variable to retrieve.

  #### Return Value

  Returns an ApptimizeVariableArray if one has already been created with the specified name which contains doubles.
  Returns nil if no such variable exists with this name.

- `+getStringDictionaryForName:`

  Retrieve a string dictionary dynamic variable that has already been declared.

  See

  `+[ApptimizeVariable stringDictionaryWithName:andDefaultStringDictionary:]`

  #### Declaration

  Objective-C

      + (ApptimizeVariableDictionary<NSString *> *_Nullable)
          getStringDictionaryForName:(NSString *_Nonnull)name;

  Swift

      class func getStringDictionary(name: String) -> ApptimizeVariableDictionary<NSString>?

  #### Parameters

  `name` | The name of the dynamic variable to retrieve.

  #### Return Value

  Returns an ApptimizeVariableDictionary if one has already been created with the specified name which contains strings.
  Returns nil if no such variable exists with this name.

- `+getBoolDictionaryForName:`

  Retrieve a bool dictionary dynamic variable that has already been declared.

  See

  `+[ApptimizeVariable boolDictionaryWithName:andDefaultBoolDictionary:]`

  #### Declaration

  Objective-C

      + (ApptimizeVariableDictionary<NSNumber *> *_Nullable)getBoolDictionaryForName:
          (NSString *_Nonnull)name;

  Swift

      class func getBoolDictionary(name: String) -> ApptimizeVariableDictionary<NSNumber>?

  #### Parameters

  `name` | The name of the dynamic variable to retrieve.

  #### Return Value

  Returns an ApptimizeVariableDictionary if one has already been created with the specified name which contains bools.
  Returns nil if no such variable exists with this name.

- `+getIntegerDictionaryForName:`

  Retrieve an integer dictionary dynamic variable that has already been declared.

  See

  `+[ApptimizeVariable integerDictionaryWithName:andDefaultIntegerDictionary:]`

  #### Declaration

  Objective-C

      + (ApptimizeVariableDictionary<NSNumber *> *_Nullable)
          getIntegerDictionaryForName:(NSString *_Nonnull)name;

  Swift

      class func getIntegerDictionary(name: String) -> ApptimizeVariableDictionary<NSNumber>?

  #### Parameters

  `name` | The name of the dynamic variable to retrieve.

  #### Return Value

  Returns an ApptimizeVariableDictionary if one has already been created with the specified name which contains integers.
  Returns nil if no such variable exists with this name.

- `+getDoubleDictionaryForName:`

  Retrieve a double dictionary dynamic variable that has already been declared.

  See

  `+[ApptimizeVariable doubleDictionaryWithName:andDefaultDoubleDictionary:]`

  #### Declaration

  Objective-C

      + (ApptimizeVariableDictionary<NSNumber *> *_Nullable)
          getDoubleDictionaryForName:(NSString *_Nonnull)name;

  Swift

      class func getDoubleDictionary(name: String) -> ApptimizeVariableDictionary<NSNumber>?

  #### Parameters

  `name` | The name of the dynamic variable to retrieve.

  #### Return Value

  Returns an ApptimizeVariableDictionary if one has already been created with the specified name which contains doubles.
  Returns nil if no such variable exists with this name.

© 2025 Apptimize Inc.. All rights reserved. (Last updated: 2025-10-10)

Generated by jazzy ♪♫ v0.14.3, a Realm project.