(前回)Cocoaの日々: SImpleCap - プリファレンス改修:アプリ設定 (3) plist へ保存
今回はマイグレーション。以前はこんなインターフェイスだった。
上記の Application1, 2, 3,.. がそれに当たる。
これを起動時に読み取り、新しいモデルへ詰め替えるコードを実装した。こんな感じ。
- (BOOL)migrateOldDefaults
{
NSString* value = nil;
NSArray* array = [NSArray arrayWithObjects:
UDKEY_APPLICATION1,
UDKEY_APPLICATION2,
UDKEY_APPLICATION3,
UDKEY_APPLICATION4,
UDKEY_APPLICATION5,
nil];
BOOL is_migrated = NO;
for (NSString* key in array) {
if (value = [UserDefaults valueForKey:key]) {
[applicationList_ addObject:[[[ApplicationEntry alloc] initWithPath:value] autorelease]];
[UserDefaults removeObjectForKey:key];
is_migrated = YES;
}
}
if (is_migrated) {
[self save];
}
return is_migrated;
}
結果はこう。
そしてこうなる。
- - - -
これで終わった。
と思いきや SimpleViewer のユーザインターフェイスで操作上問題を発見。どうするか。(続く)。