Я уверен, что вы не можете этого сделать. Вы должны иметь возможность переводить код C ++ непосредственно в класс C #, поэтому вам, по крайней мере, нужно будет реплицировать внутренние элементы векторного класса, чтобы правильно его расставить. Я также уверен, что вы не сможете перемещать ссылки через границу, вам придется использовать IntPtr (raw указатели). Подход, который я знаю, работает, чтобы маршировать необработанный массив структур.
NSUserDefaults довольно прост в использовании и сохраняет одно значение только для ключа. Но, по-видимому, это не очень безопасный метод, поскольку шифрования нет.
Но Keychain безопасен, хотя его немного сложно закодировать. Вы можете ссылаться на эту ссылку, чтобы использовать доступ к keychain.
http://log.scifihifi.com/post/55837387/simple-iphone-keychain-code
вы также можете использовать эту библиотеку, разработанную Саймоном
https://github.com/goosoftware/GSKeychain
Надеюсь, это поможет вам!
Keychain - лучшее решение, потому что оно более безопасно, но в любом случае, если вы сохраните эту информацию в NSUserDefaults, ваши пользователи не будут чувствовать себя иначе. Если кто-то взломает их устройство, они могут получить информацию от Keychain, так же как они получат информацию от UserDefaults. Таким образом, этот вопрос безопасности является риторикой. Но в любом случае хороший стиль программирования заключается в том, чтобы сохранить эти данные в Keychain!
Я бы рекомендовал использовать брелки. Используя Keychain, вы можете сохранить свой пароль в зашифрованном виде. Взгляните на образец Apple GenericKeychain .
NSUserDefaults немного менее безопасен по сравнению с Keychain. В NSUserDefaults данные могут легко получить доступ, если известен конкретный ключ. Это не относится к Keychain.
Вы также можете преобразовать NSUserDefaults в Keychains. Посмотрите здесь .
Все, что хранится в NSUserDefaults, может (относительно) легко открываться и считываться, будь то на устройстве или в (незашифрованном) резервном копировании iCloud или на Mac с синхронизацией.
Брелок, с другой стороны, предназначен для таких вещей, как сертификаты и пароли . Я связал статью под названием «Как не хранить пароли в iOS», которая также дает немного более полезную информацию.
Может быть полезно заметить, что данные Keychain будут сохраняться, даже если приложение будет удалено, но данные NSUserDefaults исчезнут с помощью приложения (NSUserDefaults является частью изолированной программной среды приложения, Keychain - независимой от приложения службой).