CCLDefaults 1.1.3

CCLDefaults 1.1.3

测试测试
语言语言 Obj-CObjective C
许可证 BSD
发布上次发布2014年12月

Kyle Fuller维护。



  • 作者:
  • Kyle Fuller

一个简单的NSUserDefaults包装器,可实现可选的iCloud同步。

用法

您可以使用CCLDefaults或将其子类化,以便为您的应用程序提供使用方法。

@implementation CCLExampleDefaults : CCLDefaults

- (NSDictionary *)defaultsDictionary {
    return @{
        @"name": @"Kyle Fuller",
        @"featureXEnabled": @NO,
    };
}

- (void)setName:(NSString *)name {
    [self setObject:name forKey:@"name"];
}

- (NSString *)name {
    return [self objectForKey:@"name"];
}

- (BOOL)hasFeatureXEnabled {
    return [[self objectForKey:@"featureXEnabled"] boolValue];
}

- (void)setFeatureXEnabled:(BOOL)featureXEnabled {
    [self setObject:@(featureXEnabled) forKey:@"featureXEnabled"];
}

@end

现在,您可以获取一个实例并使用创建的getter和setter

CCLExampleDefaults *defaults = [[CCLExampleDefaults alloc] init];
[defaults setName:@"Kyle"];

默认值

如果您希望键有初始值,则可以创建一个名为CCLDefaults.plist的plist文件,或覆盖defaultsDictionary

CCLDefaults.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>name</key>
    <string>Kyle</string>
    <key>featureXEnabled</key>
    </false>
</dict>
</plist>

defaultsDictionary

- (NSDictionary *)defaultsDictionary {
    return @{
        @"name": @"Kyle Fuller",
        @"featureXEnabled": @NO,
    };
}

键值观察

CCLDefaults已实现KVO,因此您可以简单地观察值更改时的通知。

应用程序更新回调

当用户升级应用程序时,CCLDefaults提供回调,您可以对所需的用户默认设置进行任何维护。

版本只是您的版本号(CFBundleVersion)。

- (void)upgradeFromVersion:(NSUInteger)existingVersion toVersion:(NSUInteger)newVersion {
    // In version 32, we renamed a key
    if (existingVersion < 32 && newVersion >= 32) {
        id renamedObject = [self objectForKey:@"renamedKey"];

        if (renamedObject) {
            [self setObject:renamedObject forKey:@"newKey"];
        }
    }
}

安装

CocoaPods是将CCLDefaults添加到项目的推荐方法。

以下是一个安装CCLDefaults的示例podfile。

Podfile

platform :ios, '5.0'

pod 'CCLDefaults'

许可证

CCLDefaults在BSD许可证下发布。请参阅LICENSE