Когда я должен выбрать IsolatedStorage по сравнению с хранилищем файлов AppData?

  1. давайте начнем с первой точки

    func chooseStepFunction(backward: Bool) -> (Int) -> Int

Просматривая это объявление функции, вы можете сказать, что chooseStepFunction является функция, которая принимает один аргумент типа Bool и возвращает функцию типа (Int)-> Int, которая принимает один аргумент Int в качестве параметра и возвращает Int. поэтому здесь chooseStepFunction возвращает функцию типа (Int)->Int на основе переданного в backward параметра.

  1. В следующем операторе return мы не вызываем stepBackward или stepForward, поэтому мы не используем скобки (). с точки зрения первого вы должны понимать, что chooseStepFunction будет возвращать функцию, и эта функция имеет тип (Int)->Int, и внимательно посмотрите, вы обнаружите, что сигнатура stepBackward and stepForward имеет значение (Int)->Int и будет возвращена как chooseStepFunction
  2. [ 1126]

    return backward ? stepBackward : stepForward

    3.

    let moveNearerToZero = chooseStepFunction(backward: currentValue > 0) здесь chooseStepFunction возвращают функцию типа (Int)->Int, которая хранится в moveNearerToZero, поэтому это не простая переменная, это функция, поэтому мы можем использовать скобки.

    [1133 ] Следующее описание взято из документации Swift, которая объясняет, как вы можете использовать функцию как тип:

    Использование типов функций Вы используете типы функций, как и любые другие типы в Swift. Например, вы можете определить константу или переменную для типа функции и назначить соответствующую функцию для этой переменной:

    var mathFunction: (Int, Int) -> Int = addTwoInts Это можно прочитать как:

    «Определить переменную называется mathFunction, которая имеет тип «функция, которая принимает два значения Int и возвращает значение Int.» Установите эту новую переменную для ссылки на функцию с именем addTwoInts. »

    Функция addTwoInts(_:_:) имеет того же типа, что и переменная mathFunction, и поэтому это присваивание разрешено средством проверки типов Swift.

    Теперь вы можете вызывать назначенную функцию с именем mathFunction:

    print("Result: \(mathFunction(2, 3))")
    

    Надеюсь, это поможет. [+1139]

5
задан Greg D 27 January 2009 в 15:25
поделиться

1 ответ

IsolatedStorage имеет пару интересных функций, которые могли бы заставить Вас выбрать его:

  • Даже очень низко доверяемые приложения (такие как щелчок однажды) могут получить доступ к изолированному устройству хранения данных. Не все приложения могут иметь доступ к AppData. В зависимости от политики безопасности, наложенной на приложение, может также быть ограничен IsolatedStorage, но это обычно более доступно, чем система AppData/file.

  • Требованиями устройства хранения данных IsolatedStorage может управлять политика администратора.

  • Вы не должны знать, где или как изолированные данные устройства хранения данных хранятся. Это имеет универсальный API для доступа к нему во всех системах, можно полностью проигнорировать базовый путь, в котором это хранится. Как Вы отметили, это очень полезно для библиотеки, которая может понятия не иметь, как хост-приложение хранит данные.

  • У Вас могут также быть хранившие данные данных в изолированном устройстве хранения данных с, варьируются уровни изоляции очень легко. Посмотрите значения IsolatedStorageScope для получения дополнительной информации. Это - его тезка, таким образом, я предполагаю, что должен был перечислить эту точку сначала :)

На оборотной стороне:

  • IsolatedStorage имеет некоторые известные пределы в объеме данных, которые можно хранить там. Например, установки приложения будут прекрасны, но это не подходит для документов.

Некоторые полезные ссылки:

7
ответ дан 14 December 2019 в 09:02
поделиться
Другие вопросы по тегам:

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