コーディングの際にNSUserDefaultsで以下を定義すると、コードを打ち込む時にサジェストが表示されるため、キー名をわざわざ参照しにいかなくてよい。処理の実行効率は上がらないが、生産性を上げるのに役に足ちます。
定義する関数名をキー名にしておくとよりよいと思います。
定義側
Configuration.h
#import <Foundation/Foundation.h>
@interface Configuration : NSObject
+ (void)setOriginationWithValue:(NSString *)value;
+ (NSString *)getOrigination;
+ (void)setDestinationWithValue:(NSString *)value;
+ (NSString *)getDestination
@end
Comfiguration.m
#import "Configuration.h"
@implementation Configuration
+ (void)setOriginationWithValue:(NSString *)value
{
// キー名をセッターで指定
[[NSUserDefaults standardUserDefaults] setObject:value forKey:@"orignation"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
+ (NSString *)getOrigination
{
// キー名をゲッターで指定
return [[NSUserDefaults standardUserDefaults] objectForKey:@"orignation"];
}
+ (void)setDestinationWithValue:(NSString *)value
{
// キー名をセッターで指定
[[NSUserDefaults standardUserDefaults] setObject:value forKey:@"destination"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
+ (NSString *)getDestination
{
// キー名をゲッターで指定
return [[NSUserDefaults standardUserDefaults] objectForKey:@"destination"];
}
@end
呼び出し側
ViewController.m
/* 値を設定 */
[Configuration setOriginationWithValue:@"someString"];
[Configuration setDestinationWithValue:@"anyString"];
/* 値を取得 */
_originationStringLabel.text = [Configuration getOrigination];
_DestinationStringLabel.text = [Configuration getDestination];