You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
106 lines
2.9 KiB
106 lines
2.9 KiB
9 years ago
|
/**
|
||
|
* Copyright (c) 2015-present, Parse, LLC.
|
||
|
* All rights reserved.
|
||
|
*
|
||
|
* This source code is licensed under the BSD-style license found in the
|
||
|
* LICENSE file in the root directory of this source tree. An additional grant
|
||
|
* of patent rights can be found in the PATENTS file in the same directory.
|
||
|
*/
|
||
|
|
||
|
#import <Foundation/Foundation.h>
|
||
|
|
||
|
#import <Bolts/BFTask.h>
|
||
|
|
||
|
#import <Parse/PFConstants.h>
|
||
|
|
||
|
NS_ASSUME_NONNULL_BEGIN
|
||
|
|
||
|
@class PFConfig;
|
||
|
|
||
|
typedef void(^PFConfigResultBlock)(PFConfig *__nullable config, NSError *__nullable error);
|
||
|
|
||
|
/**
|
||
|
`PFConfig` is a representation of the remote configuration object.
|
||
|
It enables you to add things like feature gating, a/b testing or simple "Message of the day".
|
||
|
*/
|
||
|
@interface PFConfig : NSObject
|
||
|
|
||
|
///--------------------------------------
|
||
|
/// @name Current Config
|
||
|
///--------------------------------------
|
||
|
|
||
|
/**
|
||
|
Returns the most recently fetched config.
|
||
|
|
||
|
If there was no config fetched - this method will return an empty instance of `PFConfig`.
|
||
|
|
||
|
@return Current, last fetched instance of PFConfig.
|
||
|
*/
|
||
|
+ (PFConfig *)currentConfig;
|
||
|
|
||
|
///--------------------------------------
|
||
|
/// @name Retrieving Config
|
||
|
///--------------------------------------
|
||
|
|
||
|
/**
|
||
|
Gets the `PFConfig` object *synchronously* from the server.
|
||
|
|
||
|
@return Instance of `PFConfig` if the operation succeeded, otherwise `nil`.
|
||
|
*/
|
||
|
+ (nullable PFConfig *)getConfig PF_SWIFT_UNAVAILABLE;
|
||
|
|
||
|
/**
|
||
|
Gets the `PFConfig` object *synchronously* from the server and sets an error if it occurs.
|
||
|
|
||
|
@param error Pointer to an `NSError` that will be set if necessary.
|
||
|
|
||
|
@return Instance of PFConfig if the operation succeeded, otherwise `nil`.
|
||
|
*/
|
||
|
+ (nullable PFConfig *)getConfig:(NSError **)error;
|
||
|
|
||
|
/**
|
||
|
Gets the `PFConfig` *asynchronously* and sets it as a result of a task.
|
||
|
|
||
|
@return The task, that encapsulates the work being done.
|
||
|
*/
|
||
|
+ (BFTask PF_GENERIC(PFConfig *)*)getConfigInBackground;
|
||
|
|
||
|
/**
|
||
|
Gets the `PFConfig` *asynchronously* and executes the given callback block.
|
||
|
|
||
|
@param block The block to execute.
|
||
|
It should have the following argument signature: `^(PFConfig *config, NSError *error)`.
|
||
|
*/
|
||
|
+ (void)getConfigInBackgroundWithBlock:(nullable PFConfigResultBlock)block;
|
||
|
|
||
|
///--------------------------------------
|
||
|
/// @name Parameters
|
||
|
///--------------------------------------
|
||
|
|
||
|
/**
|
||
|
Returns the object associated with a given key.
|
||
|
|
||
|
@param key The key for which to return the corresponding configuration value.
|
||
|
|
||
|
@return The value associated with `key`, or `nil` if there is no such value.
|
||
|
*/
|
||
|
- (nullable id)objectForKey:(NSString *)key;
|
||
|
|
||
|
/**
|
||
|
Returns the object associated with a given key.
|
||
|
|
||
|
This method enables usage of literal syntax on `PFConfig`.
|
||
|
E.g. `NSString *value = config[@"key"];`
|
||
|
|
||
|
@see objectForKey:
|
||
|
|
||
|
@param keyedSubscript The keyed subscript for which to return the corresponding configuration value.
|
||
|
|
||
|
@return The value associated with `key`, or `nil` if there is no such value.
|
||
|
*/
|
||
|
- (nullable id)objectForKeyedSubscript:(NSString *)keyedSubscript;
|
||
|
|
||
|
@end
|
||
|
|
||
|
NS_ASSUME_NONNULL_END
|