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.
105 lines
2.9 KiB
105 lines
2.9 KiB
/** |
|
* 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
|
|
|