VRAppSettings 0.1.3

VRAppSettings 0.1.3

测试测试
语言语言 Obj-CObjective C
许可证 MIT
发布最后发布2017年4月

Ivan Rublev维护。



  • 作者:
  • Ivan Rublev

这个超类使得处理用户的偏好设置(应用的设置)更为容易。主要适用于iOS。

➡️对于Swift,请使用PersistentStorageSerializable pod。

这个类的一个后续版本将应用设置保留在属性中,并在默认系统中存储自己。尽管设置值无法通过NSUserDefaults类直接访问,但只能通过VRAppSettings后续类的setter和getter。

这为应用设置定义提供了通用场所。在setter和getter中对设置值进行范围和一致性检查的可能性。可以使用重构工具在项目中对设置名称进行更改。

使用方法

VRAppSettings类通常用作单例。为VRAppSettings类创建自己的后代,例如MySettings。尽管如此,您将能够使用继承的+sharedInstance-synchronizeToUserDefaults方法。将所有应用设置描述为MySettings类的属性,并重写必需的方法。您将获得类似以下的内容:

@interface MySettings : VRAppSettings
@property (nonatomic, readwrite) BOOL dontDimScreen;
@property (nonatomic, readwrite) float soundLevel;
@end

@implementation MySettings

- (NSString *)userDefaultsKeyPostfix
{
    return @"MyAppsSettings";
}

- (void)resetToDeveloperDefaults
{
    // This will be called from -init of the superclass.
    self.dontDimScreen = NO;
    self.soundLevel = 0.7;
}

- (void)checkAfterInitWithCoder
{
    // This will be called from -initWithCoder: of the superclass.
}

@end

现在如何保存应用设置

[MySettings sharedInstance].dontDimScreen = YES;
[MySettings sharedInstance].soundLevel = 0.85;
[[MySettings sharedInstance] synchronizeToUserDefaults];

每次想将设置对象写入用户默认设置时,您都必须手动调用-synchronizeToUserDefaults

这就是加载应用设置的方式

BOOL dontDim = [MySettings sharedInstance].dontDimScreen;
float soundLevel = [MySettings sharedInstance].soundLevel;

好处

通过VRAppSettings类在默认系统中保留应用设置的好处

  • 设置定义为原始类型或对象类型(符合NSCoding协议)的属性。
  • 不需要选择适合的-setType:forKey:-typeForKey:方法,只需编写或读取属性!
  • setter和getter中对设置值的范围和一致性进行检查!
  • 不再出现设置名称的拼写错误,编译器检查一切!
  • 可以使用Xcode重构工具在整个项目中对设置名称进行更改。
  • 有机会将设置对象中的所有更改重置为现在在用户默认设置中的内容。
  • 项目中有多个独立的设置集合。
  • 设置集合的可访问性为应用或类范围。
  • 将整个类存储在用户默认设置中,这保护了各个设置免受任何外部更改的影响。

请参阅类定义和包含在仓库中的VRAppSettingsExample项目。

属性类型

后继类属性必须是原始类型或对象类型,并符合NSCoding协议。

const开头的属性将在保存或加载过程中被排除。在这些被排除的属性中,您可以存储在保留属性中依赖的运行时值。

需求

iOS SDK 6.0+

此类需要来自VRFoundationToolkit库的几个实用工具。

安装

手动

使用cocoapods更快,因为这个库有两层依赖,但如果您愿意,也可以手动设置。

  1. 根据相应README文件中的安装说明添加 VRFoundationToolkit 及其所有依赖项。
  2. 使用以下命令将 VRAppSettings 仓库子树添加到您的项目目录的 Requirements 子目录中

    git subtree add --prefix=Requirements/VRAppSettings --squash https://github.com/IvanRublev/VRAppSettings.git master

  3. VRAppSettings.hVRAppSettings.m 文件拖放到您的Xcode项目中。

现在就可以使用了!

ARC

此类需要ARC。

如果您打算在一个尚未使用自动引用计数(ARC)的项目中使用此类,您需要在项目的“构建设置”标签下的“编译源”部分中将 NSObject+VRPropertiesProcessing.mVRAppSettings.m 文件的编译器标志设为 -fobjc-arc

许可

MIT. 版权归 Ivan Rublev 所有 (c) 2013, [email protected]