iPhone - как поместить пакет Настроек, замеченный через Приложение Параметров настройки системы в Ваше собственное Приложение?

Редактировать: Исправлено путем добавления «[this.userID]» после каждого «пользовательского» вызова.

Я опробовал ваш метод, и всякий раз, когда я записываю данные, создается новый тег eTag, который приводит к разделению объекта:

"document": {
    "25781dc4-805d-4e69-bf89-da1f4d72e7cb": {
        "25781dc4-805d-4e69-bf89-da1f4d72e7cb": {
            "25781dc4-805d-4e69-bf89-da1f4d72e7cb": {
                "25781dc4-805d-4e69-bf89-da1f4d72e7cb": {
                    "25781dc4-805d-4e69-bf89-da1f4d72e7cb": {
                        "name": "",
                        "age": "",
                        "gender": "",
                        "education": "",
                        "major": "",
                        "eTag": "\"00003998-0000-0000-0000-5c797fff0000\""
                    },
                    "name": "Jane Doe",
                    "eTag": "\"00003e98-0000-0000-0000-5c7980080000\""
                },
                "age": 22,
                "eTag": "\"00004898-0000-0000-0000-5c7980150000\""
            },
            "gender": "female",
            "eTag": "\"00004d98-0000-0000-0000-5c79801b0000\""
        },
        "education": "Bachelor",
        "eTag": "\"00005498-0000-0000-0000-5c7980200000\""
    },
    "major": "Business Administration",
    "complete": true

Как я могу предотвратить это?

Мой Код:

В конструкторе:

this.changes = {};
this.userID = "";
this.userDatax = {
    name: "",
    age: "",
    gender: "",
    education: "",
    major: "",

    eTag: '*',
}

В диалогах:

async welcomeUser (step) {
    console.log("Welcome User Dialog");
    //step.context.sendActivity({ type: ActivityTypes.Typing});

    // Initialize UserData Object and save it to DB
    this.changes[this.userID] = this.userDatax;
    await this.memoryStorage.write(this.changes);
}

async promptForAge (step) {
    console.log("Age Prompt");
    // Read UserData from DB
    var user = await this.memoryStorage.read([this.userID]);
    console.log(user);

    // Before saving entry, check if it already exists
    if(!user.name) {
        user.name = step.result;
        user.eTag = '*';
        // Write userData to DB
        this.changes[this.userID] = user;
        await this.memoryStorage.write(this.changes);
    }
}
7
задан adam 8 May 2009 в 10:38
поделиться

5 ответов

Еще один вариант:

2
ответ дан 6 December 2019 в 09:22
поделиться

Параметрическое уравнение для круга имеет вид

x = cx + r * cos(a)
y = cy + r * sin(a)

Где r - радиус, cx, cy начало координат, и a угол.

Довольно легко адаптироваться к любому языку с основными функциями триггера. Обратите внимание, что большинство языков будут использовать радиан для угла в функциях триггера, поэтому вместо циклического перегиба в пределах 0,360 градуса вы будете циклически проходить через радианы 0,2I. --- 605596-

тема о том, следует ли настройка идти в вашем приложении или в приложении предпочтений является спорной, в основном потому, что нет никакого способа, чтобы открыть настройки из приложения (как указано в ответ coob ссылке на) и потому нет никакого способа добавить взаимодействие к настройкам - и есть много причин, по которым вы можете захотеть,

3
ответ дан 6 December 2019 в 09:22
поделиться

У Крейга Хоккенберри есть проект под названием GenericTableViews , который поможет вам легко создать табличное представление для настроек или форм.

3
ответ дан 6 December 2019 в 09:22
поделиться

И еще (отдельный пост из-за «защиты от спама для новичков», извините).

Они используют «стандартный» подход Settings.bundle - - но их довольно легко представить в приложении. И вы также бесплатно получаете системное поведение «Настройки».

2
ответ дан 6 December 2019 в 09:22
поделиться

Вот еще одно решение:

  • http://www.inappsettingskit.com/

    InAppSettingsKit - это решение с открытым исходным кодом, позволяющее легко добавлять настройки в приложениях для iPhone. Он использует гибридный подход, поддерживая панель Settings.app. Таким образом, у пользователя есть выбор, где изменить настройки ...

    Для поддержки традиционных панелей Settings.app приложение должно включать в себя файл Settings.bundle как минимум с Root.plist, чтобы указать соединение элементов пользовательского интерфейса настроек с NSUserDefaults ключи. InAppSettingsKit в основном использует тот же файл Settings.bundle для выполнения своей работы. Это означает, что вам не нужно выполнять дополнительную работу, если вы хотите включить новый параметр настроек. Его просто нужно добавить в Settings.bundle, и он появится как в приложении, так и в Settings.app. Поддерживаются все типы настроек, такие как текстовые поля, ползунки, переключаемые элементы, дочерние представления и т. Д. ...

10
ответ дан 6 December 2019 в 09:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: