GVUserDefaultsユーザーはサードパーティライブラリの中国語使用翻訳を設定することを好む

3720 ワード

GVUserDefaults - NSUserDefaults access via properties
GVUserDefaultsは、格納された値を直接属性で取得できるサードパーティ製ライブラリプラグインです.
Usageの使い方
Create a category on GVUserDefaults , add some properties in the .h file and make them @dynamic in the .m file. GVUserDefaultsベースのcategoryを作成し、使用するプロパティを書きます.hファイルに、そして.mファイルに@dynamicと属性名を書けばよい.
// .h
@interface GVUserDefaults (Properties)
@property (nonatomic, weak) NSString *userName;
@property (nonatomic, weak) NSNumber *userId;
@property (nonatomic) NSInteger integerValue;
@property (nonatomic) BOOL boolValue;
@property (nonatomic) float floatValue;
@end
// .m
@implementation GVUserDefaults (Properties)
@dynamic userName;
@dynamic userId;
@dynamic integerValue;
@dynamic boolValue;
@dynamic floatValue;
@end

Now, instead of using [[NSUserDefaults standardUserDefaults] objectForKey:@"userName"] , you can simply use [GVUserDefaults standardUserDefaults].userName . 現在、[[NSUserDefaults standardUserDefaults] objectForKey:@"userName"]を用いることなく、[GVUserDefaults standardUserDefaults].userNameを用いることができる.You can even save defaults by setting the property:以下のsetterメソッドで属性(分類に書いてある)値を直接設定することもできます:[GVUserDefaults standardUserDefaults].userName = @"myusername";
Key prefixキー値接頭辞
The keys in NSUserDefaults are the same name as your properties. If you'd like to prefix or alter them, add a transformKey: method to your category. For example,to turn"userName"into"NSUserDefaultUserName":NSUserDefaultsのキー値は、分類内の属性名と同じ名前です.接頭辞またはタグを付けたい場合は、transformKey:を使用します(これにより、最初の文字の母を大文字にし、NSUserDefault接頭辞を付けることができます).
- (NSString *)transformKey:(NSString *)key {
  key = [key stringByReplacingCharactersInRange:NSMakeRange(0,1) withString:[[key substringToIndex:1] uppercaseString]];
  return [NSString stringWithFormat:@"NSUserDefault%@", key];
}

Registeringdefaults defaults初期化defaults
Registering defaults can be done as usual, on NSUserDefaults directly (use the same prefix, if any!). 初期化defaultsと同様に完了する.以下の方法で初期化できます.
NSDictionary *defaults = @{
    @"NSUserDefaultUserName": @"default",
    @"NSUserDefaultUserId": @1,
    @"NSUserDefaultBoolValue": @YES
};

[[NSUserDefaults standardUserDefaults] registerDefaults:defaults];

However,it's a lot easier to create a setupDefaults method on the category,which takes care of the transformed keys automatically:もちろん、分類に直接setupDefaultsメソッドを作成しますが、自動変換のキー値の名前に注意してください
- (NSDictionary *)setupDefaults {
  return @{
    @"userName": @"default",
    @"userId": @1,
    @"boolValue": @YES
    };
}

NSUserDefaults initWithSuitName support(コメントではplistの名前)
Simply create a methods called suitName in your category and return the suitName you wish to use:あなたのcategoryにsuitNameという方法を作成し、あなたの意思に応じてあなたの望む値を返すだけです.
- (NSString *)suitName {
   
   return @"com.example.mySuitName";
}

Performance
Performance is nearly identical to using NSUserDefaults directly. We're talking about a difference of 0.05 milliseconds or less. 性能は全く心配なくNSUserDefaultsとほぼ同じです.(著者らはタイムスタンプを使って性能テストを行ったが、性能は悪くなく、システムとの差は少ない)
Install
Install via CocoaPods ( pod 'GVUserDefaults' ) or drag the code in the GVUserDefaults subfolder to your project. CocoaPodsでインストールしたり、GVUserDefaultsをプロジェクトにドラッグしたりすることができます.
Issues and questions
Have a bug? Please create an issue on GitHub!