Прежде всего, InAppSettingsKit - это то, что я искал. Как только я выясню некоторые вещи, это сэкономит мне массу времени.Как создать собственный магазин путем подкласса IASKAbstractSettingsStore?
Мой вопрос: как мне создать свой собственный магазин путем подкласса IASKAbstractSettingsStore? В home of IASK состоянии:
поведение по умолчанию IASK для хранения настроек в [NSUserDefaults standardUserDefaults]. Однако это поведение можно изменить, установив свойство settingsStore в IASKAppSettingsViewController.
и
Самый простой способ создать свой собственный магазин, чтобы создать подкласс IASKAbstractSettingsStore.
Я потратил много времени на прочесывание кода, и я думаю, что понимаю основную структуру этого. Тем не менее, я не могу определить как и что, чтобы установить settingsStore свойство.
я могу увидеть settingsStore и реализован в IASKAppSettingsViewController:
id<IASKSettingsStore> _settingsStore;
и
- (id<IASKSettingsStore>)settingsStore {
if (!_settingsStore) {
_settingsStore = [[IASKSettingsStoreUserDefaults alloc] init];
}
return _settingsStore;
}
Я попытался подклассов IASKAbstractSettingsStore:
#import <Foundation/Foundation.h>
#import "IASKSettingsStore.h"
@interface IASKSettingsStoreMeals : IASKAbstractSettingsStore {
NSString * _filePath;
NSMutableDictionary * _dict;
}
- (id)initWithPath:(NSString*)path;
@end
и модифицируется свойство settingsStore IASKAppSettingsViewController, чтобы выделить и инициализировать свои новые IASKSettingsStoreMeals класса вместо IASKSettingsStoreUserDefaults - единственный способ, которым я могу видеть, чтобы изменить свойство:
- (id<IASKSettingsStore>)settingsStore {
if (!_settingsStore) {
_settingsStore = [[IASKSettingsStoreMeals alloc] init];
}
return _settingsStore;
}
Когда я построить и запустить, я получить следующее сообщение при попытке первого управления (тумблер), все остальные поля не спасутся:
attempt to insert nil value at objects[0] (key: toggleSwitch)
Что я делаю неправильно? В дополнение к изменениям, необходимым для «rejigger» кода для использования IASKSettingsStoreFile (или подкласса IASKAbstractSettingsStore), я также не вижу, где установить путь к файлу, чтобы изменить местоположение сохранения настроек - или это делается за сцены. С нетерпением ждем, чтобы пройти эту кривую обучения и использовать это.
Отлично, что вы нашли решение по своему усмотрению. Возможно, нам нужно немного улучшить документацию или включить пример в пример приложения. –
Спасибо, что поделились своим решением. Я боролся с методом initWithPath. Ваш пример заставил все работать. (Я создал расширение IASKSettingsStoreFile, так что пароли хранятся в родной цепочке ключей, а не plist для лучшей защиты.) – Billy